CSS的相对定位和绝对定位(position)
什么是定位呢?
定位(position),故名思议,就是确定元素在页面中的位置。
CSS的常用定位有两种,一种是相对定位,一种是绝对定位。
下面我们看例子
<html><head><style>#div0 {/* 设置背景色为黄色 */background-color:yellow;/* 设置边框为1px的线条 */border:1px solid;/* 设置宽度为800px */width:800px;}#div1, #div2 {/* 设置宽度为300px */width:300px;/* 设置高度为300px */height:300px;/* 设置边框为1px的线条 */border:1px solid;}#div1 {/* 设置背景色为灰色 */background-color:#888;}#div2 {/* 设置背景色为蓝色 */background-color:#08c;}</style></head><body><div id="div0"><div id="div1"></div><div id="div2"></div></div></body></html>
有三个div,其中一个大的#div0,里面含有两个子div,#div1和#div2。

可以看到,大的黄色#div0,嵌套了一个灰色的#div1和一个蓝色的#div2。
由于div是块级元素,所以灰色和黄色的div不会在同一排显示。
测试1,相对定位
这个时候,我们给#div1,设置相对定位。
#div1 {/* 设置背景色为灰色 */background-color:#888;/* 设置为相对定位 */position:relative;/* 设置相对于自己,上面向下移动20px,左侧向右移动30px */top:100px;left:150px;}

当我们给灰色的#div1做了相对定位之后,#div1相对于自己原来的位置做了移动。
但是其他的元素#div0、#div2的位置都没有发生变化,也就是说,给元素做了相对定位之后,其他元素不受影响,还认为该元素,在其原来的位置。
测试2,一个子元素绝对定位,父元素无定位
我们再给#div1改成绝对定位
#div1 {/* 设置背景色为灰色 */background-color:#888;/* 设置为绝对定位 */position:absolute;/* 相对于页面html,上面向下移动20px,左侧向右移动30px */top:100px;left:150px;}

这时发现,原来的黄色#div0坍塌了,这是因为,绝对定位,同样会产生类似于float的脱离文档流,绝对定位的元素,与其他元素不在同一层面,处于其他元素的上方。
当父元素#div0无定位时候,绝对定位是相对于html文档来做的定位,与其父元素无关。
测试3,一个子元素绝对定位,父元素有定位
当我们给父div设置一个定位后(绝对定位/相对定位都可以),情况又发生了改变
#div0 {position:relative;}

从图上可以清楚的看到,#div1的位置,相对于父元素#div0发生了偏移。
也就是说,当父元素有定位,绝对定位是相对于父元素来做的定位。
测试4,两个子元素绝对定位,父元素无定位
现在我们给蓝色的#div2也做一个绝对定位,再来看一下效果。
#div2 {/* 设置背景色为蓝色 */background-color:#08c;/* 设置为绝对定位 */position:absolute;/* 相对于页面html,上面向下移动30px,左侧向右移动60px */top:30px;left:60px;}

现在两个子元素都设置了绝对定位,那么他们就都处于其他元素的上方,黄色的父div,就在坍塌的只剩下一条线了。
那么两个子div,重叠在一起,到底怎样控制,谁在谁的上面呢?
可以用z-index属性来控制。
我们给#div1加上z-index属性
#div1 {/* ... 其他css代码 *//* 设置层级为1 */z-index:1;}

在css中,用z-index来设置元素的层级,默认是0,谁的z-index大,谁就在上面。
当给#div1设置z-index为1后,#div2的z-index是默认值0,#div1的z-index比#div2的大,那么#div1就在#div2的上方了。
同理,当你给一个元素的z-index设置为-1时,那么这个元素就会在文档下面,看不见了。
总结:
相对定位,是相对自己原来位置所做的定位,其他页面元素不受影响,还认为该元素,在其定位前的地方。- 如果父元素没有定位,那么
绝对定位,是相对于页面html做的定位。- 如果父元素有定位,那么
绝对定位,是相对于其父元素所做的定位。- 定位的层级由
z-index属性控制,默认是0,谁大谁在上方。
CSS的相对定位和绝对定位(position)的更多相关文章
- 详解CSS的相对定位和绝对定位
CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,to ...
- Web—12-详解CSS的相对定位和绝对定位
CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,to ...
- 详解CSS的相对定位和绝对定位(讲得很详细)
详解CSS的相对定位和绝对定位 CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left ...
- css定位:相对定位、绝对定位、固定定位的区别与特性
css定位:相对定位.绝对定位.固定定位的区别与特性 原文地址:http://www.qingzhouquanzi.com/106.html css定位常用的有以下三种: 使用了定位的共同特性: 这三 ...
- CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位
其实前面的标准流和浮动流都很理解,就是定位不太好理解,特别是相对定位和绝对定位,很多刚开始学的同学不好区分.因此这里,小强老师和大家一起分享CSS定位的学习. 通过我们前面的学习,我们网页布局方法: ...
- CSS中相对定位与绝对定位
看了几个讲解定位的博客,觉得还不错,分享之: 博客一:http://blog.sina.com.cn/s/blog_4bcf4a5e010008o0.html 文章中,主要需要参考的有两点: 1,相对 ...
- h5整理--详解css的相对定位和绝对定位
浏览器默认状态下position的属性默认值是static也就是没有定位,元素出现在正常的文档流中,这个时候给元素设置的left,right.bottom.top这些偏移属性是没有效果的,不会生效: ...
- css 中相对定位和绝对定位
1. css中定位机制有三种: 标准文档流, 浮动, 绝对定位 2. 绝对定位就属于第三种定位, 用到position属性, 下面就是具体设置 相对定位: 相对于自身原有位置(就是普通流的时候)进行偏 ...
- css中相对定位和绝对定位
相对定位: #box_relative { position: relative; left: 30px; top: 20px; } 绝对定位: #box_relative { position: a ...
随机推荐
- 一些优秀的Firefox扩展
AdBlock Plus 拦截广告. 在对付CSDN等垃圾网站时非常有用. Block Site 拦截你不想看的网站 没有知乎的一天真好... XStyle 设置自己喜欢的CSS样式(表示自己并不会用 ...
- Number BZOJ3275 最大流
有N个正整数,需要从中选出一些数,使这些数的和最大. 若两个数a,b同时满足以下条件,则a,b不能同时被选 1:存在正整数C,使a*a+b*b=c*c 2:gcd(a,b)=1 Sample Outp ...
- (转)Selenium-11: Execute JavaScript with JavascriptExecutor
Outline Sometimes we cannot handle some conditions or problems with Webdriver, web controls don’t re ...
- Bootstrap中的Glyphicon 字体图标
在Bootstrap框架中也为大家提供了近200个不同的icon图片,而这些图标都是使用CSS3的@font-face属性配合字体来实现的icon效果. 1 <!DOCTYPE html> ...
- Django 12 中间件、上下文处理器和admin后台
Django 12 中间件.上下文处理器和admin后台 一.中间件 #Django中间件 (Middleware) # 一个轻量级.底层的“插件”系统,可以介入Django的请求和响应处理过程,修改 ...
- POJ 2421 Constructing Roads(最小生成树)
Description There are N villages, which are numbered from 1 to N, and you should build some roads su ...
- gym 101889I Imperial roads 最小生成树+LCA
题目传送门 题意: 给出一幅无向带权图,q次询问,每次询问都求一棵包含给出的边的最小生成树. 思路: 首先求出最小生成树(kruskal),如果查询的边在最小生成树上,肯定是直接输出最小生成树,如果不 ...
- POJ 3659 Cell Phone Network 最小支配集模板题(树形dp)
题意:有以个 有 N 个节点的树形地图,问在这些顶点上最少建多少个电话杆,可以使得所有顶点被覆盖到,一个节点如果建立了电话杆,那么和它直接相连的顶点也会被覆盖到. 分析:用最少的点覆盖所有的点,即为求 ...
- day_05 字典
1. 字典 1.成对保存数据 ,以key:value形式保存 2.以{}表示,每项内容都是key:value,元素之间用逗号隔开 3.key是不可重复的 4.字典以hash算法来计算key的hash值 ...
- day29 进程
1..操作系统知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的 ...