我有一个div我想设置不透明度。我有以下CSS:
background: rgb(255, 255, 255); /* Fall-back for browsers that don't support rgba */
background: rgba(255, 255, 255, .7);
filter: alpha(opacity=70); /* IE 7 and Earlier */
/* Next 2 lines IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
在兼容的浏览器中工作正常,但在IE 8中,这也使div的子元素透明。
我知道这个问题与this one密切相关,但那里的答案对我不起作用。
有人会有任何建议吗?
谢谢!
答案 0 :(得分:1)
IE8不支持RGBa,MS Filter不透明度会影响元素及其子元素。
来自http://css-tricks.com/rgba-browser-support/
的建议修复<!--[if IE]>
<style type="text/css">
.color-block {
background:transparent;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#50990000,endColorstr=#50990000);
zoom: 1;
}
</style>
<![endif]-->
OR(使用条件类)
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
.ie8.your-selector {
background:transparent;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#50990000,endColorstr=#50990000);
zoom: 1;
}
或强>
另一种解决方法是使用1px xpp透明png重复作为元素的背景图像..