我想使用CSS3属性transform:scale。
div
{
transform: scale(0.5,0.5);
}
有没有办法在Internet Explorer 8及更低版本中模仿这个?
可能是filter
或Javascript解决方案吗?
我在网上搜索没有任何结果。
非常感谢,文森特
答案 0 :(得分:33)
IE9支持转换:
-ms-transform: scale(0.5,0.5);
对于其他版本的IE,有一个复杂的语法。像这样:
filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',
M11=1.5320888862379554, M12=-1.2855752193730787,
M21=1.2855752193730796, M22=1.5320888862379558);
查看here了解更多信息。
答案 1 :(得分:13)
不,IE8及更早版本不支持标准transform
样式。 IE9确实支持它。
有些解决方案可以尝试使用filter
样式,但它们会很混乱。
但是对于您在问题中描述的简单情况(基本上是简单缩小),您可以使用IE专有的zoom
属性。
由于它是非标准的,zoom
最常见的用途是zoom:1
,它用于修复IE的布局故障(特别是在IE6和IE7中)。但它也会进行实际缩放,您可以使用zoom:0.5
来实现您正在寻找的效果。
使用zoom
的好处是,它在IE中的工作方式与任何其他普通的CSS属性一样(filter
替代方案有一些您需要了解的严重渲染怪癖)。
使用zoom
的唯一缺点是您需要在IE9或更高版本中禁用它,否则它会与您的transform
样式相互影响并产生一些不良影响。我不是一般支持使用CSS hacks的人,但你可以使用/9
hack(documented here)使它只影响IE8及更早版本,这意味着你可以同时指定{{1和transform
在同一样式表中,如下所示:
zoom
否则,您需要使用条件注释来确定是否使用它。
显然,如果你想做一些比简单的比例尺更复杂的事情,那么div {
transform: scale(0.5,0.5);
zoom: 0.5\9;
}
将不合适,但对于像你问题中那样简单的情况,它将是完美的。
答案 2 :(得分:1)
http://msdn.microsoft.com/en-us/library/ms533014(v=vs.85).aspx
尽管IE中的过滤器不易使用,并且它们并不总是与其他css效果相结合....
答案 3 :(得分:0)