绝对定位

来源:2-3 页面顶部的开发(2)

慕粉1112348

2024-01-30 15:59:02

老师,为啥b和i还有.arrow都加绝对定位,不是子绝父相吗,为啥.arrow不加相对定位
写回答

1回答

好帮手慕久久

2024-01-30

同学你好,解答如下:

1、“子绝父相”只是比较常见的一种定位方式,并不是所有定位都要这样用,毕竟定位的属性有很多,要根据各个属性的特点、用法、根据场合,合理选择使用哪种定位。

2、一个元素不能同时设置多种定位,即每个元素只能设置一次position属性。em.arrow这个元素,使用了绝父相”,从而实现让em.arrow相对于li.have-menu进行定位:

https://img1.sycdn.imooc.com/climg/65b8af0f091c4e0117490543.jpg

https://img1.sycdn.imooc.com/climg/65b8af1d0917b22e16960463.jpg

既然em.arrow这个元素,已经设置了 position: absolute,那它就不能再次设置position: relative了,所以它的子元素就不能使用绝父相”了。

3、要注意,设置了position: absolute的元素,会相对于距离自己最近的、设置了relative、position、fixed定位的祖先元素进行定位。比如相对于“设置了relative的父元素进行定位”、相对于“设置了position的爷爷元素进行定位”。

作为子元素,i、b都设置了position: absolute,而作为距离它们最近的父元素em.arrow,则设置了position: absolute,所以,i、b此时相对于em.arrow进行定位。

祝学习愉快!

0

0 学习 · 17877 问题

查看课程

相似问题