【问题标题】:CSS transform on SVG Elements IE9+SVG Elements IE9+ 上的 CSS 转换
【发布时间】:2014-02-13 10:05:32
【问题描述】:

有一个 SVG 路径:

<path class='st8' d='M73.4,11.3c-6.3,0-6.4,3.6-6.4,3.6v18c0,0,0.6,3.3,6.4,3.3c5.8,0,6.6-3.3,6.6-3.3v-18 C80,14.9,79.7,11.3,73.4,11.3z M75,31.3c0,0-0.3,1.2-1.6,1.2c-1.3,0-1.4-1.2-1.4-1.2V16.6c0,0,0.3-1.3,1.5-1.3s1.5,1.3,1.5,1.3V31.3 z'/>

我试图从 CSS 转换它,而不是从元素标记中声明 transform 属性。

这个过程在 webkit 和 firefox 上运行良好,但是在 IE9 或 10 nothing happens 上测试时。

<svg>
    <style>
        .st8 {
            -webkit-transform: rotate(45deg); /* works on chrome and Safari */
            -moz-transform: rotate(45deg); /* works on firefox */
            -ms-transform: rotate(45deg); /* doesn't work on IE */
            transform: rotate(45deg);
        }
    <style>
    <path class='st8' d='M73.4,11.3c-6.3,0-6.4,3.6-6.4,3.6v18c0,0,0.6,3.3,6.4,3.3c5.8,0,6.6-3.3,6.6-3.3v-18 C80,14.9,79.7,11.3,73.4,11.3z M75,31.3c0,0-0.3,1.2-1.6,1.2c-1.3,0-1.4-1.2-1.4-1.2V16.6c0,0,0.3-1.3,1.5-1.3s1.5,1.3,1.5,1.3V31.3 z'/>
</svg>

我试图在网上搜索任何提到 css 转换确实在 IE 上不起作用的地方,但是我找不到它。因此我的问题是,确实不可能在 IE 上使用 css 转换吗?除了必须在元素标签中严格使用transform 属性外,还有什么解决方法吗?

【问题讨论】:

    标签: css internet-explorer svg css-transforms


    【解决方案1】:

    IE11 支持 SVG 中的 transform 属性,即使它不能识别 CSS 样式。

    幸运的是,您可以使用 JavaScript 简单地设置属性以匹配样式:

    var g = document.querySelector('.st8'),
        transform = getComputedStyle(g).getPropertyValue('transform');
        
    g.setAttribute('transform', transform);
    .st8 {
        -ms-transform: rotate(45deg); /* doesn't work on IE */
        transform: rotate(45deg);
    }
    <svg>
      <path class='st8' d='M73.4,11.3c-6.3,0-6.4,3.6-6.4,3.6v18c0,0,0.6,3.3,6.4,3.3c5.8,0,6.6-3.3,6.6-3.3v-18 C80,14.9,79.7,11.3,73.4,11.3z M75,31.3c0,0-0.3,1.2-1.6,1.2c-1.3,0-1.4-1.2-1.4-1.2V16.6c0,0,0.3-1.3,1.5-1.3s1.5,1.3,1.5,1.3V31.3 z'/>
    </svg>

    【讨论】:

    • 嗯,它可以在我的 IE9 模拟器中运行,但我没有 IE9 计算机来测试它。谢谢你告诉我。
    • 没问题,我在 VirtualBox 上使用 www.modern.ie 的 iso 对其进行了测试,这是我认为最安全的选择。另外我发现你不能在 IE9 中转换 svg 图像,所以我使用了 png。
    【解决方案2】:

    虽然 IE9+ 支持 CSS3 转换,但它们在 SVG 上不支持它们,据我所知,它不能在 CSS 中完成。

    来源: caniuse under CSS3 Transforms 的已知问题 http://caniuse.com/#feat=transforms2d

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 2011-04-21
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 2021-08-29
      相关资源
      最近更新 更多