IE6-8 filter双重滤镜bug
2012-11-06 16:33:13 来源:WEB开发网 最近在做一个旋转木马的特效时候碰到了一个很诡异的问题在IE8以下的IE内核浏览器中,当一个父级定义了filter的alpha时,如果它子级也有滤镜则这个层中的文字全部会变为灰色(小半透明形式展示)如下例:
<!doctype>
<html>
<head>
<style>
.box-item{width:500px;height:200px;border:1px solid #333;position:relative;background:#f5f5f5;filter:alpha(opacity=100);opacity:1;}
.infro-bx{font:bold 18px/50px 'songti';text-align:center;color:#f00;}
.comment-bx{height:50px;width:100%;position:absolute;bottom:0;left:0;z-index:15;}
.shade-bx{background:#000;opacity:0.5;filter:alpha(opacity=50);z-index:5;}
</style>
</head>
<body>
<div class="box-item">
<div class="comment-bx infro-bx">内容介绍</div>
<div class="comment-bx shade-bx"></div>
</div>
</body>
</html>
这个时候在IE下层里面的内容字体色展示效果会偏差非常大 特别是当filter中的opacity为80等不满一百的时候几乎为半透明灰色,而在IE9和其他非ie内核中却正常解析,由于项目的周期比较近迫于无奈,只能浪费一个链这个透明遮罩通过png图片去模拟,IE6下也就为不透明了。通过多次测试基于其他浏览器和IE9的正常解析个人把它归入了IEBUG(其实应该是它特有filter解析方式不一样引起的吧);