static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。
relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
absolute:对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
什么是文档流? 文档流是将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流。只有三种情况会使得元素脱离文档流,分别是:浮动、绝对定位和相对定位。
在实际开发当中,通常都是我们相对定位搭配绝对定位使用。例如下面伪代码 <div class="content"> ???????????<div id="content_body1"> ??????????????????//图片代码块 ?????????????</div> ???????</div> ???????????CSS ???????????.content{ ???????????????????clear: left; ???????????????????margin: 0 auto; ???????????????????position: relative; ???????????????????width: 990px; ???????????} ????????.content_body1{ ?????????????overflow: hidden; ???????????????????position: absolute; ????????} ????????这里用两个div包了一个图片段代码。外层div采用了相对定位,内层采用了绝对定位。 为什么这样做呢? 这样的好处是,先把图片代码块固定在外层的div当中(<div class="content">),如果需要挪动图片位置。直接操作外层的div即可。这样就避免了直接挪动图片影响了页面的其它布局 ????
开发中如何合理使用CSS的相对定位和绝对定位
原文地址:http://blog.51cto.com/13765598/2120631