代码之家  ›  专栏  ›  技术社区  ›  Moaaz Bhnas

溢出:隐藏对伪元素不起作用[duplicate]

  •  0
  • Moaaz Bhnas  · 技术社区  · 6 年前

    我有个红场( div )还有一个橙色的条作为伪元素( before )
    我想把橙色的那部分藏在父母广场外面,所以我用 overflow: hidden; 对父母来说,但这不管用。

    .square {
      width: 3.5em;
      height: 3.5em;
      
      background-color: red;
      overflow: hidden;
    }
    
    .square::before {
      content: "";
      position: absolute;
      transform: translate(2em);
      width: 4.95em;
      height: .65em;
      background-color: orange;
    }
    <div class="square"></div>
    2 回复  |  直到 6 年前
        1
  •  1
  •   Hidden Hobbes    6 年前

    问题

    伪元素当前相对于根元素定位。

    解决方案

    你需要让它相对于 .square 而是通过添加 position: relative; .正方形 是的。

    .square {
      width: 3.5em;
      height: 3.5em;
      
      background-color: red;
      overflow: hidden;
    Position:relative;
    }
    
    .square::before {
      content: "";
      position: absolute;
      transform: translate(2em);
      width: 4.95em;
      height: .65em;
      background-color: orange;
    }
    <div class="square"></div>
        2
  •  1
  •   Zuber    6 年前

    你需要设置 position: relative .square

    .square {
      width: 3.5em;
      height: 3.5em;
      position: relative; /* Added */
      background-color: red;
      overflow: hidden;
    }
    
    .square::before {
      content: "";
      position: absolute;
      transform: translate(2em);
      width: 4.95em;
      height: .65em;
      background-color: orange;
    }
    <div class="square"></div>