我想在我的图像背景上叠加一个叠加层,以便更清晰地看到图像上方的白色文字。
为什么this solution不起作用?
HTML:
character(0)
CSS:
<div id="myDiv" class="bg1 image-cover">
<p>H</p>
</div>
而this one确实:
HTML:
#myDiv {
width: 300px;
height: 300px;
color: #fff;
position: relative;
font-size: 100px;
font-weight: bold;
}
.image-cover:before {
content:'\A';
position: absolute;
width:100%;
height:100%;
top:0;
left:0;
background:rgba(0,0,0,0.9);
opacity: 1;
}
.bg1 {
background-size: cover;
background: url('https://2zpt4dwruy922flhqyznip50-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/lock-and-stock-photos.jpg');
}
CSS:
<div id="myDiv" class="bg1">
<div class="image-cover">
<p>H</p>
</div>
</div>
我认为我误解了...
.image-cover {
content:'\A';
position: absolute;
width:100%;
height:100%;
top:0;
left:0;
background:rgba(0,0,0,0.9);
opacity: 1;
}
...
的工作方式,但我不喜欢第二种解决方案,因为它比第一种方法多一个div。
答案 0 :(得分:3)
我很高兴您已经意识到第二种解决方案;这往往是我通常使用的方法(虽然不是出于任何特殊原因)。您可以按如下方式修改原始方法并获得所需效果:
#myDiv > p {
position: relative;
}
即,为嵌套的<p>
标记提供非static
位置值。见这里:CodePen
答案 1 :(得分:0)
您可以像这样增加要覆盖在图像上的文本的 z-index
:
#myDiv{
z-index: 1;
}
#myDiv p{
z-index: 2; /* should be more than the z-index of the background */
}