3、父元素要有定位
元素将依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位。
- 绝对定位的特点总结:(务必记住)
1、如果没有祖先元素或者祖先元素没有定位,则以浏览器为基准定位(Document文档)
2、如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置。
3、绝对定位不再占有原先的位置。所以绝对定位是脱离标准流的。(脱标)
1.6 定位口诀 -- 子绝父相
弄清楚这个口诀,就明白了绝对定位和相对定位的使用场景。
这句话的意思是:子级是绝对定位的话,父级要用相对定位。
因为绝对定位的盒子是拼爹的,所以要和父级搭配一起来使用
①子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子。
②父盒子需要加定位限制子盒子在父盒子内显示
③父盒子布局时,需要占有位置,因此父亲只能是相对定位。
相对定位经常用来作为绝对定位的父级。
总结: 因为父级需要占有位置,因此是相对定位,子盒子不需要占有位置,则是绝对定位
当然,子绝父相不是永远不变的,如果父元素不需要占有位置,子绝父绝也会遇到。
分析:
1、方向箭头叠加在其他图片上方,应该使用绝对定位,因为绝对定位完全脱标完全不占位置。
2、父级盒子应该使用相对定位,因为相对定位不脱标,后续盒子仍然以标准流的方式对待它。
- 如果父级盒子也使用绝对定位,会完全脱标,那么下方的广告盒子会上移,这显然不是我们想要的。
结论:父级要占有位置,子级要任意摆放,这就是子绝父相的由来,
1.7 固定定位(fixed)-重要
固定定位是元素固定于浏览器可视区的位置。(认死理型)
主要使用场景: 可以在浏览器页面滚动时元素的位置不会改变。
语法:
选择器 {
position: fixed;
}
- 固定定位的特点:(务必记住):.
1、以浏览器的可视窗口为参照点移动元素。
- 跟父元素没有任何关系
- 不随滚动条滚动。
2、固定定位不在占有原先的位置
固定定位也是脱标的,其实固定定位也可以看做是一种特殊的绝对定位。(认死理型)
- 完全脱标-- 完全不占位置
- 只认浏览器的可视窗口-
浏览器可视窗口 +边偏移属性 来设置元素的位置,
- 跟父元素没有任何关系;单独使用的。
- 不随滚动条滚动。
固定定位举例:
1.8 粘性定位(sticky)--了解
粘性定位可以被认为是相对定位和固定定位的混合。 Sticky 粘性的
语法:
选择器{
position: sticky;
top:10px;
}
粘性定位的特点:
1、以浏览器的可视窗口为参照点移动元素(固定定位特点)
2、粘性定位占有原先的位置(相对定位特点)
3、必须添加 top、left、right、bottom 其中一个才有效跟页面滚动搭配使用。 兼容性较差,I不支持。