您的位置:首页 > Web前端 > CSS

css中的定位(position)

2017-03-20 20:30 281 查看
w3c中对position各个 属性值定义:

static

元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

relative

元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

absolute

元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

fixed

元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

我自己的理解

absolute,fixed,relative三个定位属性的区别:

1.参考位置不同

(1).relative的参考位置是它自己本来所应该在的位置,即不加定位时所处的位置。

(2).absolute的参考位置是它的父元素,但这个父元素必须设置了position属性。如果它的直接父级没有设置定位属性,就一层一层的往上找,直到找到一个设置了position定位属性的父元素。若还是找不到,就把body作为它的定位参照物,进行定位。

(3).fixed的参考位置则是浏览器的视窗。

2.是否脱离文档流

什么叫做脱离文档流呢?脱离文档流就是说元素本身失去了宽和高,也就是说它自己其实在那个位置,但是它之后的其他元素却看不见它。直接占据了它的位置,于是它就直接被无视了。

当position属性被设置成relative时不会脱离文档流,但其实保存的是那个定位之前的位置。设置absolute和fixed时就会脱离文档流。所以呢,我们有时候要给一个元素设position为absolute时,就会把父级的position属性设置为relative。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: