【问题标题】:CSS - Child element see through parent [duplicate]CSS - 子元素通过父元素看到[重复]
【发布时间】:2020-06-19 06:57:22
【问题描述】:

我想让一个子元素能够看穿它的父元素,这样背景图片在子元素内部可见,而不是父元素,如下图所示

CSS 或其他方法可以实现吗?

【问题讨论】:

    标签: html css


    【解决方案1】:

    据我所知,你不能从另一个元素中减去一个元素来创造这种效果,你必须伪造它。将白色条带视为彼此相邻的 3 个元素。外面的填充物是白色的,中间是透明的。这 3 个元素位于具有白色边框(以创建白色边缘)的包装内。下面的示例演示了这种效果。

    img {
      width: 100%;
    }
    
    .center {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    
    .row {
      display: flex;
      flex-direction: row;
      width: 100%;
      height: 100px;
      border: 5px solid white;
    }
    
    .row .col {
      display: inline-block;
      height: 100%;
      background-color: white;
      width: 100%;
    }
    
    .row .col.m {
      background-color: transparent;
      width: 500px;
    }
    
    .row .col span {
      color: white;
      text-align: center;
    }
    <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcSfz6VkKDw0b3AacQg2PhSq8BpHf1z8Ngg-iYt_1Qqu5cR6Q3_Z&usqp=CAU">
    
    <div class="center row"> 
      <div class="l col"></div>
      <div class="m col">
        <span class="center"> Welcome back, <br> user1! </span>
      </div>
      <div class="r col"></div>
    </div>

    【讨论】:

    • 所以我几乎将整行分成 3 个不同的兄弟元素。感谢您的想法!
    • 没问题!只需将问题标记为已回答未来用户即可