本文我们讨论涉及定位的position
属性。首先我们来看一下position
对应的值及其含义(表1)。
其中static
是默认值,当元素未定义position
或定义position
值为static
时,该元素内定义的top
, bottom
, left
, righ
和 z-index
无效。
relative
表示相对定位,在文档流中仍然占有空间,其参考对象是离该元素最近的父元素。图1表示父元素的position
值变化时,子元素(position=relative
)与父元素的相对位置,由图可以看出其相对位置不随父元素的position
值变化而变化。
图1中外框和除position
属性值不一样外,其他css
属性均一致,其内外框htm
l和相同部分css
见图2。
absolute
表示绝对位置,其在文档流中不占空间,其参考对象是离该元素最近的position值不是static的父元素。由图3可以看出。
图3中外框和除position
属性值不一样外,其他css属性均一致。其内外框html和相同部分css见图4。
值得注意的是,当其父元素position
值均为static
或者未定义时,其参考对象应该是document
(浏览器视窗大小的矩形)而不是网上所说的body
元素或者html
元素。为验证以上说法 我们设置下面三组对照,代码如图5所示,其中.fixed
和.absolute
的css
样式如图6所示。.absolute
始终完全覆盖在.fixed
上,由此可见.absolute
的位置没有随html
元素和body
元素的变化而变化,因此其参考对象不是body
元素或者html
元素。
fixed
表示固定定位,类似于absolute
,但是其是根据浏览器窗口定位的。