好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

CSS中Position的用法详解。

记得一年前,到一家公司面试的时候,问我position有哪几个属性,我憋半天才回答出2个,大家估计都清楚,就是我们经常用到的2个(relative,absolute)。

最近又用到了好多,深入研究了下。

一、语法:

position:static | relative | absolute | fixed

取值:
static :默认值,无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用,默认值。
relative:相对定位,对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。
absolute:绝对定位,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
fixed:固定定位,对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。

二、四个属性的详细介绍:

1 、static,默认值
说 到这里我们不得不提一下一个定义——文档流,很多书对文档流这个概念只是一笔带过,没有详细解答,但我根据自己的经验和理解对它进行了总结,文档流其实就 是文档的 输出顺序,也就是我们通常看到的由左到右、由上而下的 输出形式,在网页中每个元素都是按照这个顺序进行排序和显示的,而float和 position两个属性可以将元素从文档流脱离出来显示。

默认值就是让元素继续按照文档流显示,不作出任何改变。

2 、relative,相对定位

相对定位一个最大特点是:自己通过定位跑开了还占用着原来的位置,不会让给他周围的诸如文本流之类的对象。相对定位也比较独立,做什么事它自己说了算,要定位的时候,它是以自己本身所在位置偏移的(相对对象本身偏移)。本身位置变化了,而元素最初所占的物理空间依然还是存在,另外一点元素相对定位后并没有影响其他相邻的元素。

3 、absolute,绝对定位

位置被设置为absolute后,被设置的元素会被定义到包含它的元素内的指定坐标(X坐标、Y坐标)。

比如:position:absolute;left:20px;top:80px; 这个容器始终位于距离浏览器左20px,距离浏览器上80px的这个位置。它不会随着窗口大小变化,只是固定在一个特定的坐标轴上面;

4 、固定位置,fixed

在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。但是目前它在IE6中不被支持.

Ie6处理方法:

 body { 
    background-image : url(about:blank) ;  /*   for IE6   */  
    background-attachment : fixed ;  /*  必须  */ 
} 

.demo { 
    _position : absolute ; 
    _top : expression(documentElement.scrollTop + documentElement.clientHeight-this.offsetHeight) ;
} 

查看更多关于CSS中Position的用法详解。的详细内容...

  阅读:55次