答案 0 :(得分:0)
所以听起来你有三层:背景,Div A和Div B. Div A + B需要透明才能看到动画背景。您是否尝试过使用CSS属性"不透明度"?
div {
opacity: .3; /* Anything betweet 0 - 1 */
filter: alpha(opacity=30); /* For IE8 and earlier */
}
查看此内容,了解有关不透明度https://www.w3schools.com/css/css_image_transparency.asp
的更多信息答案 1 :(得分:0)
你可以使用CSS clip-path属性实现这一点,只要你只想让'B'成为'A'的剪切,在这种情况下你根本就不需要'B'。
HTML:
<div class="animated-bg">
<div class="inner-a">
</div>
</div>
CSS:
.animated-bg {
background-image: url(http://www.animateit.net/data/media/august2009/twi.gif);
width: 100%;
height: 700px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.inner-a {
background-color: white;
width: 600px;
height: 400px;
margin: 0 auto;
-webkit-clip-path: polygon(0% 0%, 0% 100%, 25% 100%, 25% 25%, 75% 25%, 75% 75%, 25% 75%, 25% 100%, 100% 100%, 100% 0%);
}
否则,如果你想要'B'来保存某些东西,例如文字,你可以将它绝对定位在剪裁的'A'后面并给它一个透明的背景。
这样的事情:
HTML
<div class="animated-bg">
<div class="inner-b">
hello
</div>
<div class="inner-a">
</div>
</div>
CSS:
.animated-bg {
background-image: url(http://www.animateit.net/data/media/august2009/twi.gif);
width: 100%;
height: 700px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.inner-a {
position: absolute;
background-color: white;
width: 600px;
height: 400px;
margin: 0 auto;
-webkit-clip-path: polygon(0% 0%, 0% 100%, 25% 100%, 25% 25%, 75% 25%, 75% 75%, 25% 75%, 25% 100%, 100% 100%, 100% 0%);
z-index: 2;
}
.inner-b {
width: 400px;
height: 300px;
margin: 0 auto;
position: absolute;
background: transparent;
z-index: 1;
color: white;
text-align: center;
line-height: 300px;
}
Clippy非常适合制作合适尺寸的剪辑:http://bennettfeely.com/clippy/
答案 2 :(得分:0)
你不能使用像面具这样的div来隐藏其父级的背景。因此,您可以将background-color
的{{1}}更改为div.A
,以便您可以获得透明效果,如下例所示
border
.out {
background: repeating-linear-gradient( 45deg, #606dbc, #606dbc 10px, #465298 10px, #465298 20px);
height: 200px;
padding: 30px;
}
.A {
border-style: solid;
border-color: red;
border-width: 20px 40px 20px 40px;
height: 100px;
}
.B {
background: transparent;
}