position属性规定元素的定位值
有四个值
absolute
生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
在没有设定top, right, bottom, left,默认依据父级的坐标原始点为原始点。
如果设定top, right, bottom, left并且父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由top, right, bottom, left决定。
fixed
生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
relative
生成相对定位的元素,相对于其正常位置进行定位。
因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。
static
默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit
规定应该从父元素继承 position 属性的值。
绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型??
例如
<div class="a"> <a class="name"> 测试 </a> <span class="b"> </span> </div>
.a{ width: 220px; height: 38px; cursor: pointer; position: relative; line-height: 38px; color: #333333; } .b{ background: url(http://img3.douban.com/f/fm/33fff010d098b0775e981c2b27b7a0d32dcbe2a2/pics/fm/home/ic_play_current1a.gif) no-repeat; width: 11px; height: 11px; position: absolute; right: 21px; top:13px; display: inline-block; } .name{ display: block; background:rgba(198,211,205,0.5); width: 205px; height: 38px; text-indent: 24px; }
当a为relative或fixed ,b为absolute,b的父容器是a,会相对a确定位置,显示结果
如果去掉a 的position:relative属性,或者换成static 或inherit,这时b的父容器是body,显示结果