解决方法
在MSIE 5.5中,通过7,filter
,也称为Alpha Filter
,实际上使用了MSIE的DX Filter(no longer supported).然而,为了更符合CSS2.1,在IE8 MS中引入了-ms-filter
来替代filter
.语法不同之处在于-ms-filter
的值必须用引号括起来.最终,IE9引起了对这种方法的不满,而从IE10开始,它已经不复存在了.
另一个有趣的注意事项,如果您想要较旧的IE完全兼容,那么您必须确保使用filter
和-ms-filter
必须非常具体.例如,以下不能在IE8运行IE7兼容模式下运行:
element { filter: alpha(opacity=50); -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; }
-ms-filter
必须在filter
之前才能获得更多的旧版IE兼容性.所以:
element { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter: alpha(opacity=50); }
FireFox使用filter
作为实验失败.我相信原来的想法是模拟IE在使用Direct X引擎时所做的工作.甚至有一个浏览器特定的版本,因为大多数浏览器一次.最终HTML5 / CSS3宣布使用过滤器命名空间,现在有了一个新的目的.
从CSS3起,filter
现在有了全新的意义! Firefox文档保持打开状态,就像他们打算扩展一样,虽然我还没有看到它(但是如果您的CSS现在不符合自己的喜好,那么它们会崩溃JS). Webkit(可能会成为下一次更新CSS3标准)已经开始实施filter
到您几乎可以为您的网站“photoshop”图像的点!
由于过滤器变化太大,不透明度将是首选的使用方法,但是,如您所见,完全跨浏览器兼容意味着非常彻底.
特定浏览器:
-webkit-filter:filter(value);
-moz-filter:filter(value);
> -o-filter:filter(value);
> -ms-filter:“progid:DXCLASS.Object.Attr(value)”;
也可以看看:
> What’s compatible with opacity
?
> What’s compatible with the newer filter
?
请记住,与旧版IE的过滤器不一样