css定位

214 阅读3分钟

定位是将盒子在某一个位置,所有定位也是在摆放盒子,按照定位的方式移动盒子 定位=定位模式+边偏移 定位模式用于指定一个元素在文档中的定位方式。边偏移决定了该元素的最终位置

1、定位模式position 定位属性:对每个图层进行精准定位操作

position:static; 没有定位,静态定位。标准的文档流 position:fixed; 固定定位,相对于浏览器窗口的定位,不会随着滚动条滚动,广告,不占空间,漂浮的 position:relative; 相对定位。以原来的位置作为点进行偏移。 position: absilute; 绝对定位,《设置绝对订位,前面的会被后面的盖住,脱离文档流,之前的位置回被替代 ,父盒子不是绝对定位,盒子会以body为基准为偏移 如果祖先元素有定位,以最近一级带有定位的祖先元素为位置作为顶点(参考点)进行偏移 比如:爷爷有定位,爸爸没有定位,儿子就以爷爷作为参考点偏移 如果没有,则相对于body定位,文档流原位置不存在 最后一点:绝对定位不再占用原先的位置 所以相对定位经常用来作为绝对定位的父级 总结:因为父级需要占有位置,所以使用相对定位,子盒子不需要占有位置,则是绝对定位

子绝父相:意思就是子级使用绝对定位,父级则需要相对订位 子级绝对定位,不会占有位置,可以放在父盒子里面的任何一个地方,不会影响其他的兄弟盒子 父盒子需要加定位限制黑子在父盒子内显示 父盒子布局时,需要占有位置,因为父亲只能是相对定位

2.边偏移:top bottom left right 只存在定位属性

3:z-index属性 用于定义子盒子的最外围相对父盒子content的四个边的距离,z-index值越大,显示在最上层。

一般做法就是,父元素为realative,子元素为absolute,这样子元素可以随着父元素移动,而相对位置不变

设置了absolte最好设置left 或top来表明位置

设置了position的属性时候,都可以使用z-index提高优先级

要想提高层级,要使用z-index 默认值是1

5、绝对定位vs相对定位

绝对定位好像把不同元素安排到了一栋楼的不同楼层(除首层,文本流放在首层),它们之间互不影响;相对定位元素在首层,与文本流一起存放,它们之间互相影响。

被设置了绝对定位的元素,在文档流中是不占据空间的,如果某元素设置了绝对定位,那么它在文档流中的位置会被删除,它浮了起来,其实设置了相对定位也会让元素浮起来,但它们的不同点在于,相对定位不会删除它本身在文档流中占据的空间,其他元素不可以占据该空间,而绝对定位则会删除掉该元素在文档流中的位置,使其完全从文档流中抽了出来,其他元素可以占据其空间,可以通过z-index来设置它们的堆叠顺序 。