CSS中Position属性用法及作用

开发 前端
本文向大家描述一下CSS中Position属性的作用及用法,在CSS布局中,Position发挥着非常重要的作用,很多容器的定位是用Position来完成。

在CSS布局中,Position发挥着非常重要的作用,很多容器的定位是用Position来完成,CSS中Position属性有四个可选值,它们分别是:static、absolute、fixed、relative。

使用CSS:Position属性
  
  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用于将一个元素放到固定的位置很好用,但是如果需要层相对于附近的层来确定位置就无能为力了。只能用下面讨论到的相对定位了。
  这里有个WinIE的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发生一定的重叠!

  我们看下面的代码运行效果。

SourceCodetoRun 

  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN"  
  2.  
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  4. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  5. <head> 
  6. <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> 
  7. <title>www.div-CSS.net</title> 
  8. <styletypestyletype="text/CSS"> 
  9. #nav{  
  10. width:200px;  
  11. height:200px;  
  12. Position:relative;  
  13. top:50px;  
  14. left:50px;  
  15. background:#ccc;  
  16. }  
  17. #woaiCSS{  
  18. width:200px;  
  19. height:200px;  
  20. background:#c00;  
  21. }  
  22. </style> 
  23. </head> 
  24. <body> 
  25. <dividdivid="nav"></div> 
  26. <dividdivid="woaiCSS"></div> 
  27. </body> 
  28. </html> 
  29.  

[可先修改部分代码再运行查看效果]

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

文章来源:Div-CSS.net设计网参考:http://www.div-CSS.net/div_CSS/topic/index.asp?id=7034

【编辑推荐】

  1. CSS中padding-bottom属性用法解析
  2. 实例解析CSS padding 属性用法
  3. 探究IE和Firefox下的2款HTTP调试工具用法
  4. CSS教程:详解margin和padding属性应用场合
  5. 实现IE6、IE7、IE8多版本浏览器共存的五种方法
责任编辑:佚名 来源: div-CSS.net
相关推荐

2010-08-24 15:11:24

PositionCSS

2010-09-01 11:21:18

CSSpositionfloat

2010-09-08 16:22:32

PositionCSS

2010-09-15 13:44:01

CSS positio

2010-09-06 17:20:04

background-CSS

2010-09-15 14:00:06

position属性DIV

2010-09-10 10:47:47

CSSposition

2010-08-31 10:30:59

CSSpositionz-index

2010-09-15 13:50:04

CSSposition属性

2010-09-15 14:30:07

CSS backgro

2010-09-06 11:11:31

CSS定位

2010-09-03 13:02:04

CSSposition

2010-08-16 11:05:54

DIV+CSS

2010-09-07 08:54:18

CSSbackground-

2010-09-15 14:56:18

CSSposition:fi

2010-09-02 11:18:46

CSSfloatposition

2010-08-31 15:24:43

CSSpositionabsolute

2010-08-24 13:14:36

CSSmargin

2010-09-13 17:36:02

overflowCSS

2010-09-07 16:46:59

CSSexpression
点赞
收藏

51CTO技术栈公众号