首页 > 解决方案 > `transform-origin` 是一个有效的 SVG 2 属性吗?

问题描述

我对transform-origin物业感到困惑。

根据最新的 SVGV 2 草案,它是必需的 CSS 属性

根据SVG Presentation Attributes 上的 MDN 页面,它不是可以用作 SVG 元素属性的 CSS 属性。但是,根据同一页面,大多数浏览器都支持它作为属性。根据MDN 页面,transform-origin它听起来像是一个 SVG 属性。

其他 SVG 用户代理/编辑器(例如 Inkscape)似乎不支持将其作为属性或样式属性。Inkscape 使用它自己的inkscape:transform-center-xinkscape:transform-center-y属性来代替。

标签: csssvgstandards

解决方案


在 SVG 1.1 中,几乎所有 CSS 属性都可以作为映射属性使用,即您可以编写 style="display: none" 或 display="none"

当第一次创建 SVG 2 规范时,作者建议不要继续使用新的 CSS 属性,即它们不会映射到属性。

然而,Chrome 和 Safari 将 transform-origin 映射到一个属性,并最终与开始出现的依赖该属性的内容兼容,Firefox 也这样做了。

SVG 2 规范有一个未解决的问题,建议应该更改规范以反映现实。


推荐阅读