我在悬停上使用的图像上有一个div,它有一些乳白色的图层,我可以使用background-color:rgba(255,255,255,0.1)
。
当我跨浏览器测试我的网站时,我意识到IE8不支持rgba。因此,当不支持rgba时,我想要的是根本没有乳白色层。在下面我尝试作为后备:
1/ background-color:rgba(255,255,255,0.1);
2/ background-color:transparent; background-color:rgba(255,255,255,0.1);
3/ background-color:none; background-color:rgba(255,255,255,0.1);
通过所有三次尝试,我的图像上都有一个完整的空白图层。我怎么能做到这一点?
答案 0 :(得分:2)
我认为以下内容可行。
将图像包装在容器中:
<div class="img-overlay">
<img src="http://placekitten.com/200/200">
</div>
应用以下CSS:
.img-overlay {
border: 1px solid blue;
float: left;
position: relative;
}
.img-overlay:before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: white;
filter: alpha(opacity=40); /* internet explorer */
opacity: 0.4; /* fx, safari, opera, chrome */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; /*IE8*/
}
img {
display: block;
}
请参阅http://jsfiddle.net/audetwebdesign/DkRJs/
上的演示我们的想法是使用绝对定位将元素放在图像上,然后应用不透明度属性。
如果较旧的浏览器不支持伪元素,则需要直接放入HTML代码。
注意:我只是重读原来的问题并意识到我解决了错误的问题。 很抱歉给您带来不便。
IE8问题
我在IE8中对此进行了测试,并且意识到您需要filter
属性才能使其完全向后兼容。
答案 1 :(得分:1)
这不是理想的,但您可以使用1px x 1px透明png作为重复背景图像。 您甚至可以使用IE条件注释来执行此操作,以便仅针对IE8。
你也可以使用:
img:hover{opacity:0.8}