CSS中Position的⽤法:
语法:
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等属性以窗⼝为参考点进⾏定位,当出现滚动条时,对象不会随着滚动。
四个属性的详细介绍:
static,默认值
谈到static,⽂档流是⼀个必不可少的名词。⽂档流就是⽂档的输出顺序,也就是我们通常看到的由左到右、由上⽽下的输出形式,在⽹页中每个元素都是按照这个顺序进⾏排序和显⽰的,⽽float和position两个属性可以将元素从⽂档流脱离出来显⽰。
默认值就是让元素继续照⽂档流显⽰,不作出任何改变。
relative,相对定位
位置属性被设置为relative之后,是相对于前⾯的容器定位的。这个时候不能⽤top left在定位,应该⽤margin。它可以随窗⼝⼤⼩变化。但⼤⼩仍然不会变。要是你设置成width:100%;height:100%;这样就会随着窗⼝变⼤变⼩。
⽐如:<div class="1"></div><div class="2"></div>
当1固定了位置。1的样式  float:left;width:100px; height:800px;
2的样式为  float:left; position:relative; margin-left:20px;width:50px;
2的位置在1的右边,距离20px.
absolute,绝对定位
位置被设置为absolute后,被设置的元素会被定义到包含它的元素内的指定坐标(X坐标、Y坐标)。
⽐如:position:absolute;left:20px;top:80px; 这个容器始终位于距离浏览器左20px,距离浏览器上80px的这个位置。它不会随着窗⼝⼤⼩变化,只是固定在⼀个特定的坐标轴上⾯;(换⾔之,其他的div的设置不影响它)
fixed,固定位置
在理论上,被设置为fixed的元素会被定位于浏览器窗⼝的⼀个指定坐标,不论窗⼝是否滚动,它都会固定在这个位置。但是⽬前它在IE6中不被⽀持,只有IE7和Firefox浏览器可以识别。(类似定死位置)
position注意事项:
1、当Position属性值为Relative时对象原来占有的位置保留,其后⾯的对象按原来⽂档流仍然保持原来的位置Top的值表⽰对象相对原位置向下偏移的距离bottom的值表⽰对象相对原位置向上偏移的距离两者同时存在时,只有Top起作⽤。left的值表⽰对象相对原位置向右偏移的距离right的值表⽰对象相对原位置向左偏移的距离两者同时存在时,只有left起作⽤。
2、当Position属性值为absolute时对象从⽂档流中抽取出来,原占有的位置被后⾯的对象顶替上来Top
的值表⽰对象上边框与浏览器窗⼝顶部的距离bottom的值表⽰对象下边框与浏览器窗⼝底部的距离两者同时存在时,只有Top起作⽤;如果两者都未指定,则其顶端将与原⽂档流位置⼀致,即垂直保持位置不变。left的值表⽰对象左边框与浏览器窗⼝左边的距离right的值表⽰对象右边框与浏览器窗⼝右边的距离两者同时存在时,只有left起作⽤;如果两者都未指定,则其左边将与原⽂档流位置⼀致,即⽔平保持位置不变。
在Position属性值为absolute的同时,如果有⼀级⽗对象(⽆论是⽗对象还是祖⽗对象,或者再⾼的辈分,⼀样)的Position属性值为Relative时,则上述的相对浏览器窗⼝定位将会变成相对⽗对象定位,这对精确定位是很有帮助的。
positon 与 display
元素分为内联元素和区块元素两类(当然也其它的,在内联元素中个⾮常重要的常识,即内两元素是不可以设置区块元素所具的样式,例如:width | height。
relative : 原来是什么类型的依旧是什么类型。css固定定位
absolute | fixed : 元素就被重置为了区块元素,例如:打算为span元素指定⼤⼩,并绝对定位
<span >span</span>这是完全正确的,
<span >span</span>,这⾥的display:block就是多余的了。
position 与 float
⼀个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这是⼀个常识性的知识点,因为这是两个不同的流,⼀个是浮动流,另⼀个是“定位流(这是⾃⼰起的名字,呵呵)”。
但是 relative 却可以。因为它原本所占的空间仍然占据⽂档流。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。