子绝父相的情况下,子元素的边界位置与层级的问题

写项目时遇到的小问题:
父元素:

    position: relative;    
    padding-top: 45px;

头部子元素

  position: absolute;
  left:0;
  top:0;

此时父元素的padding-top给子元素预留了45px的高度。
子元素绝对定位后,我们想让子元素定位在父元素的padding-top。

如果子元素不加top:0;头部子元素实际上会向下占位,而父元素给子元素预留的padding-top就会空出来。

left:0;可以不加,默认左对齐。

绝对定位的子元素,默认以相对定位的父元素的内容区域作为边界。

另外,为什么去掉top:0会层级不够,被接下来的元素覆盖呢?
因为头部子元素掉落下来之后,下面还有兄弟元素,兄弟元素没有定位,所以在自己的位置直接对定位的子元素进行了覆盖。

猜你喜欢

转载自blog.csdn.net/weixin_42557996/article/details/84316076