css中的position属性
static
这个属性表示默认的位置,在设置它的时候,可以取消继承属性,在一般情况下则不需要设置这个属性。
absolute
这个属性表示绝对定位。绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置就会相对于最初的包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。就比如说,上一个块使用absolute定位之后,下一个快不设置,那么这两块就会重叠到一起。元素定位后生成一个块级框,不管它原来在正常流中生成何种类型的框。比如,对一个元素进行绝对定位,然后通过设置垂直或水平位置,让这个元素相对于它的起点进行移动。
如果将 top 设置为 10px,那么框将在包含它的容器顶部下面 10 像素的地方。如果 left 设置为 10 像素,那么框相对于它的容器左边框 向右素移动10像素。
relative
这个属性表示相对定位,设置为相对定位的元素框会偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍保留。
如果对一个元素进行相对定位,然后可以通过设置垂直或水平位置,让这个元素相对于它的起点进行移动。
如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。
fixed
这个属性表示固定定位,它用于相对于浏览器窗口定位,如果将 top 设置为 20px,那么框将在相对于窗口顶部下面 20 像素的地方,其他位置同理,也可以用百分比来表示位置。
它的效果是,不论如何拉动浏览器的滚动条,设置了该属性的元素不会改变位置。
下面这段代码,是我用定位做的一个布局。它的效果是:
如果我们能灵活运用position的几种属性,就能做出许多漂亮美观的布局。