参考:慕课网 点此可进

如何让html元素在网页中精确定位,就像图像软件PhotoShop中的图层一样可以对每个图层能够精确定位操作。CSS定义了一组定位(positioning)属性来支持层布局模型。

层模型有三种形式:

1、绝对定位(position: absolute)

2、相对定位(position: relative)

3、固定定位(position: fixed)

绝对定位

需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块(下文的组合使用)进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>absolute</title>
<style type="text/css">
div{
width:200px;
height:200px;
border:2px red solid;
position:absolute;
left:50px;
top:150px;
}
</style>
</head>
<body>
<div id="div1"></div>
</body>
</html>

结果图如下:

相对定位

需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>relative样式</title>
<style type="text/css">
#div1{
width:200px;
height:200px;
border:2px red solid;
position:relative;
left:50px;
top:150px;
} </style>
</head>
<body>
<div id="div1"></div>
 <span>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</span>
</body>
</html>

结果图如下:

虽然div元素相对于以前的位置产生了偏移,但是div元素以前的位置还是保留着,所以后面的span元素是显示在了div元素以前位置的后面。

固定定位

fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>relative样式</title>
<style type="text/css">
#div1{
width:200px;
height:200px;
border:2px red solid;
position:fixed;
bottom:0;
left:50px; } </style>
</head>
<body>
<div id="div1"></div>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
<p>阿斯达四方打算购房的股份合计进口近乎苛刻嘉陵江凯乐科技立刻就会看见了就很高沿途体育与</p>
</body>
</html>

结果图如下:

当滚动下拉框时,红色框并不会随着滚动而滚动。这应该就是那些小广告啊,二维码啊之类的设计方法

 

Relative与Absolute组合使用

使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后,如何设置相对于其它元素进行定位?这就得使用position:relative来帮忙,但是必须遵守下面规范:

1、参照定位的元素必须是相对定位元素的前辈元素:

<div id="box1"><!--参照定位的元素-->
<div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>

从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。

2、参照定位的元素必须加入position:relative;

#box1{
width:200px;
height:200px;
position:relative;
}

3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

#box2{
position:absolute;
top:20px;
left:30px;
}

这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>相对参照元素进行定位</title>
<style type="text/css">
div{border:2px red solid;}
#box1{
width:200px;
height:200px;
position:relative; }
#box2{
position:absolute;
top:20px;
left:30px; }
/*下面是任务部分*/
#box3{
width:200px;
height:200px;
position:relative; }
#box4{
width:99%;
position:absolute;
bottom:0px;
left:0px;
}
</style>
</head> <body>
<div id="box1">
<div id="box2">相对参照元素进行定位</div>
</div> <h1>下面是任务部分</h1>
<div id="box3">
<img src="http://img.mukewang.com/541a7d8a00018cf102000200.jpg">
<div id="box4">当我还是三年级的学生时是一个害羞的小女生。</div>
</div>
</body>
</html>

结果图如下:

Relative与Absolute组合使用还是很有用处的,另外还是很喜欢这个害羞的女生啊!

CSS层模型的更多相关文章

  1. 学习总结:CSS(二)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

    一.元素的块级与行级特性 在CSS属性display控制元素是否及如何显示的特性,常用的值有none.inline.block.inline-block,在CSS3中还有一些新的特性状态,在这里不做讨 ...

  2. html学习第三天—— 第12章——css布局模型

    清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又不同于我们常说的 ...

  3. 熟悉HTML CSS布局模型

    HTML最难的地方来了!这个我反复了很多遍, 包括现在写博客, 也对我自己算是一种温习, 我这块怕是没办法写的很好懂, 因为我自己还不能把我学到的准确通俗易懂的表达出来, 给自己记个笔记, 以后再来一 ...

  4. css布局模型

    ---恢复内容开始--- 在清楚了CSS盒模型的基本概念,盒模型类型,我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是CSS最基本,最核心的概念.但布局模型是建立在盒型基础之上,又不同 ...

  5. 浅析css布局模型1

    css是网页的外衣,好不好看全凭css样式,而布局是css中比较重要的部分,下面来分析一下常见的几种布局. 流动模型 流动模型是网页布局的默认模式,也是最常见的布局模式,他有两个特点: 1.块状元素都 ...

  6. Web前端开发基础 第四课(CSS元素模型)

    css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又 ...

  7. 7.css盒模型

    所谓的盒模型,其实就是把元素当成盒子,元素里的文本就是盒子里的东西. 而根据元素的特效,其盒模型的特效也不同,下面是一些总结: 1.块级元素(区块) 所谓块级元素,就是能够设置元素尺寸.有隔离其他元素 ...

  8. 【CSS3】---层模型position之fixed固定定位、absolute绝对定位和relative相对定位

    什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧.但是在网 ...

  9. HTML+CSS学习笔记 (12) - CSS布局模型

    标签:HTML+CSS css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是 ...

随机推荐

  1. 复星昆仲杨光:VR行业四大痛点

    2016年,可是说是VR产业的爆发之年,从公司层面到资本层面都对VR产业给予了厚望,期望其能够在移动互联网之后带来革命性的突破,掀起新一轮技术主导的商业革命.而创业者们已经跃跃欲试,期望在资本的支持下 ...

  2. jquery 模拟 alert 手机,pc,平板 3合一

    $.kw = { title : "System information", //默认标题 可修改 speed : 400, //默认速度 可修改 buttonName : &qu ...

  3. hdu acm 1028 数字拆分Ignatius and the Princess III

    Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  4. .net之微信企业号开发(三) 回调模式的接口开发

    一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信 ...

  5. [转]Liunx上安装svn客户端

    [转]Liunx上安装svn客户端 虽然说很简单的用yum install subversion就可以将svn安装到系统中,但是yum库中的版本实在是有点低——1.4.2.因此我选择以源码方式安装.安 ...

  6. ECMall——安装时的小bug解决办法

    第一次安装ECmall,安装了好多遍,总是出现Strict Standards: Non-static method这样的错误,折腾了五六遍,还是安装不上,仍然是类似的错误.气愤!于是上百度查:Ecm ...

  7. eclipseMARS2.0使用可视化设计界面——配置window builder

    1.查看eclipse版本 不同版本的eclipse对应不同的版本window builder,如果不知道版本的话可以通过,点击HELP——>about eclipse来查看自己eclipse的 ...

  8. UIViewController的生命周期(根视图view从无到有的过程)

    UIViewController的生命周期实质上是指根视图view从无到有的过程 1.首先新建一个工程:不从mainstoryBoard加载 (删除入口) 在AppDelegate.m --> ...

  9. poj 1286&&poj2409 Polya计数 颜色匹配

    #include <iostream> #include <math.h> using namespace std; #define LL long long LL gcd(L ...

  10. C++混合编程之idlcpp教程Lua篇(8)

    上一篇在这 C++混合编程之idlcpp教程Lua篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程LuaTutorial6中,同样加入了四个文件:LuaTutori ...