html - 如何使子div透明?

标签 html css nested transparency

假设有一个 div,比如“parent-div”。 父 div 具有背景色。如果子 div "child-div"需要设置透明背景怎么办,这样它就设置了祖父 div 的背景图片,类名为 "wrapper "?

我知道子div可以继承父div的css属性,但是如何设置背景为透明,让整个图片看起来像父div有一个洞?

.wrapper{
  background-image: url('http://media.istockphoto.com/photos/medium-golden-brown-wood-texture-background-picture-id513694258?k=6&m=513694258&s=170667a&w=0&h=xETakP7VjpAtRj9e6rJRYNqw_AJLZ9ovLlC4ebR5BOQ=');
}

.parent-div{
  width: 100px;
  height: 100px;
  background: #ff0000;
  padding: 10px;
  margin: auto;
}

.child-div{
  width: 60%;
  height: 60%;
  margin: auto;
  background: transparent;
  border: 1px solid;
}
<div class="wrapper">
  <div class="parent-div">
    <div class="child-div">
    </div>
  </div>
</div>

enter image description here

最佳答案

不要在 .parent-div 上应用 background

而是在 .child-div 上使用较大的 box-shadow 值,并在 .parent- 上添加 overflow: hidden div 隐藏不需要的阴影效果。

以下 css 将完成工作:

.parent-div {
  overflow: hidden;
}
.child-div {
  box-shadow: 0 0 0 500px #f00;
}

.wrapper {
  background-image: url('http://media.istockphoto.com/photos/medium-golden-brown-wood-texture-background-picture-id513694258?k=6&m=513694258&s=170667a&w=0&h=xETakP7VjpAtRj9e6rJRYNqw_AJLZ9ovLlC4ebR5BOQ=');
}

.parent-div {
  overflow: hidden;
  width: 100px;
  height: 100px;
  padding: 10px;
  margin: auto;
}

.child-div {
  box-shadow: 0 0 0 500px #f00;
  border: 1px solid;
  width: 60%;
  height: 60%;
  margin: auto;
  
}
<div class="wrapper">
  <div class="parent-div">
    <div class="child-div">
    </div>
  </div>
</div>

关于html - 如何使子div透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40337464/

相关文章:

html - css 合并框阴影

html - 手机上呈现的字体不同,如何在手机上检查?

node.js - 如何在 package.json 中强制嵌套 npm 依赖

css - 行 flexbox 内嵌套列 flexbox 带包装

html - 破译网站布局

javascript - 将 HTML5 拖放对象恢复到原始 div 容器

html - 在高度为 100% 的 Bootstrap 4 flex 容器上填充

html - 如何在 css 中使用自动换行调整元素的父级大小?

java - MongoDB - 使用 Java 添加嵌套数组

html - 基于列表开始属性设置有序列表的样式,如 "X.X"