【发布时间】:2013-05-02 14:14:53
【问题描述】:
我有一个我正在旋转的带有背景图像的 div。以下是我的 css 规则来旋转它:
#services_parallax {
-webkit-transform:rotate(3.1deg); /* Webkit */
transform: rotate(3.1deg); /* firefox & IE9+ */
/* IE7 & 8 */ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.998537, M12=-0.054079, M21=0.054079, M22=0.998537, sizingMethod='auto expand');
}
问题是在 IE 中,图像的边缘非常块状和锯齿状,而不是平滑的线条,并且似乎没有抗锯齿。有谁知道解决这个问题?在我通过应用 -webkit-backface-visibility: hidden; 对其进行修复之前,它一直在 chrome 中执行此操作。这对 chrome 非常有用,如果存在,我只需要对 IE 进行类似的修复。
要复制此问题,请将以下内容粘贴到 HTML 文件中并在 IE 中查看:
<style type="text/css">
#services_parallax { -webkit-transform:rotate(3.1deg); /* Webkit */
transform: rotate(3.1deg); /* firefox & IE9+ */
/* IE7 & 8 */ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.998537, M12=-0.054079, M21=0.054079, M22=0.998537, sizingMethod='auto expand');
background: url(http://img.netcarshow.com/Pagani-Zonda_R_2009_1600x1200_wallpaper_01.jpg) center center;
background-size:100% auto;
height:100px;
width:700px;
margin-top:50px;
margin-left:50px;
}
</style>
<div id="services_parallax"></div>
【问题讨论】:
-
请说明您遇到问题的 IE 版本? IE 7/8(使用
filter)与IE 9/10(使用transform)的工作方式大不相同。 -
所有版本都有问题
-
您能否确认您使用的是每个IE版本的真实副本,或者您是否使用兼容模式进行测试? (同样,对于这样的事情,这可能会影响您看到的结果)
-
我正在使用真正的IE10,使用兼容模式检查IE10和IE9。然后我将 IE Tester 用于 7 & 8
-
值得一提的是,IE10确实支持
-ms-backface-visibility。然而,值得一提的是,这个属性是为3D rotation effects 使用的,所以如果它在 2D 旋转时对 Chrome 产生影响,那么它可能更像是一种 hack,而不是真正的解决方案。但是,如果您对 hack 没问题,您可以尝试像opacity(0.9999)这样的 hack。另一种选择是将元素创建为 SVG/VML 图像,在所有浏览器中旋转应该更平滑。
标签: html css internet-explorer rotation transform