为什么行内元素不能变形?

Why can't inline elements be transformed?

The CSS transformations spec 表示转换仅适用于块级或原子内联级元素(例如 inline-block)。但是 为什么 它们不能处理行内元素?此限制背后的原因是什么?

Microsoft 的

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

如@Shikkediel 所述,内联元素不像块元素那样具有强边界。它们不会以相同的方式影响文档的流向(如果有的话),并且与相邻的文本或元素紧密绑定。 CSS 变换对边界框(内联元素在技术上确实具有)的操作方式对内联元素没有真正意义。

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

另一方面,包含 <span> 确实有矩形边界,因此找到中心和角点、旋转和缩放都是可预测和明确定义的。

this fiddle为例。行内元素的背景为:

但编辑器显示的边界是:

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