参考:慕课网 点此可进

如何让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. jQuery in action 3rd - Working with properties, attributes, and data

    properties properties 是 JavaScript 对象内在的属性,可以进行动态创建,修改等操作. attributes 指的是 DOM 元素标记出来的属性,不是实例对象的属性. 例 ...

  2. Java的基本概念

    JAVA的方法签名是 参数类型,参数个数,参数顺序,不包括返回值和访问修饰符. 对象序列化:将一个对象编码成一个字节流.

  3. C# 以附加文件方式连接SQL Server数据库文件

    string str = @"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFileName=z:\ttt.mdf;Us ...

  4. 1.iOS直播ijkplayer(第一周)

    准备工作: 1.使用的B站的开源框架ijkplayer ,下载地址: https://github.com/Bilibili/ijkplayer ijkplayer 是一个基于 ffplay 的轻量级 ...

  5. 如何运用boolean跳出循环

    用布尔类型跳出循环:1.首先申明一个布尔变量:boolean y =false:申明位置在:方法内,循环外:public void s(){//在此申明布尔变量:for(){}}if(!y){}2,进 ...

  6. Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7549340 更多请查看专栏,地 ...

  7. Java解析网段下包含的所有IP地址

    import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;impor ...

  8. iOS 删除已经配置的类库和移除CocoaPods

    引言 我们使用CocoaPods非常高效地将一些第三方类库导入到我们的项目中,但是不由得产生一个疑问:如果发现某个类库不适用,甚至是整个CocoaPods我们都不想再在项目中持有,那么我们要怎么把这些 ...

  9. Paxos算法细节详解(一)--通过现实世界描述算法

    Paxos分析 最近研究paxos算法,看了许多相关的文章,概念还是很模糊,觉得还是没有掌握paxos算法的精髓,所以花了3天时间分析了libpaxos3的所有代码,此代码可以从https://bit ...

  10. c# 动态执行脚本,相关的几个脚本引擎.

    Jint   嵌入式的javascript脚本支持引擎,一直都在更新,对各种方法支持也比较好,可以 C# 交互. https://github.com/sebastienros/jint Jurass ...