代码之家  ›  专栏  ›  技术社区  ›  underfrankenwood

为什么伪元素覆盖父元素?

  •  0
  • underfrankenwood  · 技术社区  · 1 年前

    我正试图移动伪 ::after 要素 在下面 这个 parent div.但效果不太好。如何移动蓝色下的绿色方框?

    .parent {
      height: 100px;
      width: 100px;
      background: blue;
      position: relative;
      z-index: 10;
    }
    
    .parent::after {
      position: absolute;
      top: -10px;
      background: green;
      content: '';
      height: 40px;
      width: 40px;
      z-index: 2;
    }
    <div class="parent" />
    1 回复  |  直到 1 年前
        1
  •  1
  •   Shuo    1 年前

    因为你有 position: relative 在…上 .parent 。您可以添加 .container 然后移动 位置:相对 对它。

    .container {
      height: 100px;
      width: 100px;
      position: relative;
    }
    
    .parent {
      width: 100%;
      height: 100%;
      background: blue;
    }
    
    .parent::after {
      position: absolute;
      top: -10px;
      background: green;
      content: '';
      height: 40px;
      width: 40px;
      z-index: -1;
    }
    <div class="container">
      <div class="parent" />
    </div>