Position的英文原意是指位置、职位、状态。也有安置的意思。在CSS布局中,Position发挥着非常关键的数据,非常多容器的定位是用Position来完毕。

  Position属性有四个可选值,它们各自是:static、absolute、fixed、relative。我们以下来共同学习它们的不同的使用方法,在学习中我们应该去思考在什么布局情况下,应该使用它们当中的哪一种。

  很多其他关于Position属性的资料请參考这里。

  position:static 无定位

  该属性值是全部元素定位的默认情况,在普通情况下,我们不须要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本身,从而能够用position:static取消继承,即还原元素定位的默认值。

  如:#nav { position:static; }

  position:absolute 绝对定位

  使用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.com]

www.fun52.com


   [ 可先改动部分代码 再执行查看效果 ]

  由此可知position:relative并非非常好用的哦,nav已经移走了,相对于原来的位置,向右向左各移了50px。但我们的还有一个容器woaicss什么也没有察觉,当作nav是在原来的位置上(即0 0的位置,而不是50 50),不依不饶的紧跟在nav的后面。大家在使用时要注意方法与总结经验。