166月

position属性以及应用

SEO/网站推广, 前端开发DIV+CSS

之前也用过position这个代码,一直没有很好的理解什么意思,今天遇到一个模板好多模块都是用的这个属性安排的位置,因此在网上查了资料,理解一下position属性

语法:

position : static | absolute | fixed | relative

参数:

static :  无特殊定位,对象遵循HTML定位规则
absolute :  将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位。而其层叠通过z-index属性定义。此时对象不具有边距,但仍有补白和边框
relative :  对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置
fixed :  IE5.5及NS6尚不支持此属性

下面本文转载自(52css)

Position的英文原意是指位置、职位、状态。也有安置的意思。在CSS布局中,Position发挥着非常重要的作用,很多容器的定位是用 Position来完成。
Position属性有四个可选值,它们分别是:static、absolute、fixed、relative。 我们下面来共同学习它们的不同的用法,在学习中我们应该去思考在什么布局情况下,应该使用它们其中的哪一种。

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发生一定的重叠!

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

<!DOCTYPE html PUBLIC “-//W3C//DTD  XHTML 1.0 Strict//EN”  “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″  /> <title>www.52css.com</title> <style type=”text/css”> <!– #nav {     width:200px;     height:200px;     position:relative;     top:50px;     left:50px;     background:#ccc; } #woaicss {     width:200px;     height:200px;     background:#c00; } –> </style> </head> <body> <div id=”nav”></div> <div id=”woaicss”></div> </body> </html>

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


分享到:



1 comment

星期三, 6月 16th, 2010 | 分类:SEO/网站推广, 前端开发DIV+CSS | RSS 2.0 | 留言/评论 | Trackback

已有评论

  1. Posted by 鼻炎吃什么药 on 星期二 10th 8月

    借过,学习中

留言