style中position的属性值详解
Position的英⽂原意是指位置、职位、状态。也有安置的意思。在CSS布局中,Position发挥着⾮常重要的作⽤,很多容器的定位是⽤Position来完成。
Position属性有四个可选值,它们分别是:static、absolute、fixed、relative。我们下⾯来共同学习它们的不同的⽤法,在学习中我们应该去思考在什么布局情况下,应该使⽤它们其中的哪⼀种。
更多关于Position属性的资料请参考这⾥。
position:static ⽆定位
该属性值是所有元素定位的默认情况,在⼀般情况下,我们不需要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本⾝,从⽽可以⽤position:static取消继承,即还原元素定位的默认值。
如:#nav { position:static; }
position:absolute 绝对定位
absolute relative 使⽤position:absolute,能够很准确的将元素移动到你想要的位置,让我将nav移动到页⾯的右上⾓。我们可以这样写:
nav { position:absolute; top:0; right:0; width:200px; }
使⽤绝对定位的nav层前⾯的或者后⾯的层会认为这个层并不存在,也就是在z⽅向上,它是相对独⽴出来的,丝毫不影响到其它z⽅向的层。所以position:absolute⽤于将⼀个元素放到固定的位置很好⽤,但是如果需要层相对于附近的层来确定位置就⽆能为⼒了。只能⽤下⾯讨论到的相对定位了。
这⾥有个Win IE的bug需要提到,就是如果为绝对定位的元素定义⼀个相对的宽度,那么在IE下它的宽度取决于⽗元素的宽度⽽不是整个页⾯的宽度。
position:fixed 相对于窗⼝的固定定位
这个定位属性值是什么意思呢?元素的定位⽅式同absolute类似,但它的包含块是视区本⾝。在屏幕媒体如WEB中,元素在⽂档滚动时不会在浏览器视察中移动。例如,它允许框架样式布局。在页式媒体如打印输出中,⼀个固定元素会出现于第⼀页的相同位置。这⼀点可⽤于⽣成流动标题或脚注。我们也见过相似的效果,但⼤都数效果不是通过CSS来实现了,⽽是应⽤了JS脚本。
请特别注意,IE6不⽀持CSS中的position:fixed属性。真的⾮常遗憾,要不然我们就可以试试这种酷
酷的效果了。
position:relative 相对定位
所谓相对定位到底是什么意思呢,是基于哪⾥的相对呢?我们需要明确⼀个概念,相对定位是相对于元素默认的位置的定位。既然是相对的,我们就需要设置不同的值来声明定位在哪⾥,top、bottom、left、right四个数值配合,来明确元素的位置。如果要让nav层向下移动20px,左移40px:
我们可以这样写:#nav { position:relative; top:50px; left:50px; }
但您需要注意下⾯的情况,相对定位紧随他的层woaicss是不会出现在nav的下⽅,⽽是和nav发⽣⼀定的重叠!
我们看下⾯的代码运⾏效果。
Source Code to Run [www.fun52]
www.fun52
[ 可先修改部分代码再运⾏查看效果 ]
由此可知position:relative并不是很好⽤的哦,nav已经移⾛了,相对于原来的位置,向右向左各移了50px。但我们的另⼀个容器woaicss什么也没有察觉,当作nav是在原来的位置上(即0 0的位置,⽽不是50 50),不依不饶的紧跟在nav的后⾯。⼤家在使⽤时要注意⽅法与总结经验。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论