CSS3转换:在IE中扩展

时间:2011-10-18 10:33:07

标签: css internet-explorer css3 scale

我想使用CSS3属性transform:scale。

div
{
     transform: scale(0.5,0.5);
}

有没有办法在Internet Explorer 8及更低版本中模仿这个? 可能是filter或Javascript解决方案吗?

我在网上搜索没有任何结果。

非常感谢,文森特

4 个答案:

答案 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效果相结合....

但IE 9支持规模 https://developer.mozilla.org/en/CSS/transform

答案 3 :(得分:0)