为什么不能转换内联元素?

时间:2015-10-23 14:40:19

标签: css css-transforms w3c

The CSS transformations spec表示变换仅适用于块级或原子内联级元素(例如order by)。但为什么他们不在内联元素上工作?这种限制背后的原因是什么?

微软的

This test表明它是可能的。它通过IE9,但不在Chrome中。所以它是可能的,而不是规范。

1 个答案:

答案 0 :(得分:3)

正如@Shikkediel所提到的,内联元素没有像块元素那样强大的边界。它们不会以相同的方式影响文档的流动(如果有的话),并且与它们的相邻文本或元素紧密绑定。 CSS转换以一种对内联元素没有意义的方式在边界框(内联元素在技术上具有这种功能)上运行。

考虑<span>(或div)中的<span>。粗体文本仅由样式更改定义,但可以跨多行流动,并且没有可预测的矩形边界区域。如果您要应用CSS旋转,它将从何处旋转?旋转时如何回流?

另一方面,包含public enum myEnums { Link Alive = 0, Link Dead = 2, Link Weak = 1, Wiznet 0 Dead = 3, Wiznet 1 Dead = 4, Wiznets Dead = 5 } 的确有矩形边界,因此找到中心和角落,旋转和缩放都是可预测且定义明确的。

举个例子,拿this fiddle。内联元素的背景是:

inline strong with background color

但编辑器显示的界限是:

inline strong with debugger hightlight

您可以清楚地看到背景和元素的边界完全不匹配。没有明确的界限,变换因为困难而且不是很有用。