如何让孩子透明?

时间:2016-10-31 06:24:39

标签: html css css3 nested transparency

假设有一个div,说" parent-div "。 父div具有背景颜色。如果孩子div," child-div ",需要设置透明背景,以便使用祖父母div的背景图像设置,并使用类name" wrapper "?

我知道子div可以从父div继承css属性,但是如何将背景设置为透明,使得整个图片看起来像parent-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>
&#13;
&#13;
&#13;

enter image description here

2 个答案:

答案 0 :(得分:4)

请勿在{{1​​}}上申请background

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

以下css将完成工作:

.parent-div

.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;
  
}

答案 1 :(得分:0)

检查this Fiddle

基于:

.parent{
    width:300px;
    height:300px;
    position:relative;
    border:1px solid red;
}
.parent:after{
    content:'';
    background:url('http://www.dummyimage.com/300x300/000/fff&text=parent+image');
    width:300px;
    height:300px;
    position:absolute;
    top:0;
    left:0;
    opacity:0.5;
}
.child{
    background:yellow;
    position:relative;
    z-index:1;
}

ref