我有以下HTML代码,它只显示一个包含文字的透明黑色覆盖图片。
我不希望我的文字透明。我尝试使用z-index
,但我的文字仍然是透明的:
我的代码出了什么问题?
这是我的HTML:
<div class="leftContainer">
<div class = "promo">
<img src="images/soon.png" width="415" height="200" alt="soon event" />
<div class="hilight">
<h2>Hockey</h2>
<p>Sample text</p>
</div>
</div>
...
</div>
这是我的css:
.hilight h2{
font-family: Helvetica, Verdana;
color: #FFF;
z-index: 200;
}
.promo {
position: relative;
}
.promo img {
z-index: 1;
}
.hilight {
background-color: #000;
position: absolute;
height: 85px;
width: 415px;
opacity: 0.65;
font-family: Verdana, Geneva, sans-serif;
color: #FFF;
bottom: 0px;
z-index: 1;
}
答案 0 :(得分:22)
将.hilight的背景更改为rgba(0,0,0,0.65)并删除不透明度。
.hilight {
background-color: rgba(0,0,0,0.65);
position: absolute;
height: 85px;
width: 415px;
font-family: Verdana, Geneva, sans-serif;
color: #FFF;
bottom: 0px;
z-index: 1;
}
答案 1 :(得分:2)
您需要将不透明度设置为背景,而不是整个div及其内容。您可以使用rgba
颜色选择执行此操作,例如
div {
background: rgba(0,0,0,0.50);
}
另一种方法是使用半透明png
图像和background-position
。这将是多浏览器兼容的
答案 2 :(得分:2)
对于跨浏览器支持,请使用透明1x1像素png图像来执行此操作
您可以在此网站上生成图片:http://www.1x1px.me/
然后,只需删除background-color
和opacity
,然后只需使用background:url(bg.png);
答案 3 :(得分:0)
里面的一切都会有0.65的不透明度。将文本移到叠加div之外。