我想使用CSS3属性transform:scale。
div
{
transform: scale(0.5,0.5);
}
有没有办法在Internet Explorer8及更低版本中模仿这一点?可能是filter
或Javascript解决方案?
我已经在网上搜索过了,但没有任何结果。
非常感谢,文森
发布于 2011-10-18 18:44:01
IE9支持transform:
-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。
发布于 2011-10-18 19:02:40
不支持,IE8和更早版本不支持标准transform
样式。不过,IE9确实支持它。
有一些解决方案你可以尝试使用filter
风格,但它们会很混乱。
但是对于您在问题中描述的简单情况(基本上是一个简单的缩小),您可以使用IE专有的zoom
属性。
因为它是非标准的,所以zoom
最常见的用法是zoom:1
,它用于修复IE的许多布局故障(特别是在IE6和IE7中)。但是它也可以进行实际的缩放,你可以使用zoom:0.5
来达到你想要的效果。
使用zoom
的好处是,它在IE中的工作方式就像其他任何普通的CSS属性一样( filter
替代方案有一些严重的渲染怪癖,你需要知道)。
使用zoom
的唯一缺点是,你需要在IE9或更高版本中禁用它,否则它将与你的transform
风格发生冲突,并产生一些不必要的效果。我一般不支持使用CSS hack,但您可以使用/9
hack (documented here)使其只影响IE8和更早的版本,这意味着您可以在同一样式表中同时指定transform
和zoom
,如下所示:
div {
transform: scale(0.5,0.5);
zoom: 0.5\9;
}
否则,您将需要使用条件注释来确定是否使用它。
显然,如果您想做任何比简单的比例比例更复杂的事情,那么zoom
将不适合,但对于像您问题中的简单情况,它将是完美的。
发布于 2011-10-18 18:41:25
http://msdn.microsoft.com/en-us/library/ms533014(v=vs.85).aspx
然而,IE中的滤镜并不容易使用,而且它们并不总是与其他css效果相结合……
但IE 9支持scale https://developer.mozilla.org/en/CSS/transform
https://stackoverflow.com/questions/7805870
复制相似问题