IE6-8 filter双重滤镜bug

来源:互联网 发布:js arraybuffer 编辑:程序博客网 时间:2024/05/21 16:55

最近在做一个旋转木马的特效时候碰到了一个很诡异的问题在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解析方式不一样引起的吧);