使用您指定的理由(特别是规范的第五和第七点),您的原始答案对我来说似乎是合理的。
IE 是正确的而 Webkit 和 Firefox 不是正确的似乎极不可能。但是,您怀疑第七个要点是差异化因素。
如果您在 Chrome 中加载此测试用例并使用开发者工具检查 SVG,您将看到:
(user agent stylesheet)
svg:not(:root), symbol, image, marker, pattern, foreignObject {
overflow: hidden;
}
如果您在 Firebug 中启用“显示用户代理 CSS”,您会在 Firefox 中看到以下规则:
svg.css (line 49) <System>
svg:not(:root), symbol, image, marker, pattern, foreignObject {
overflow: hidden;
}
最后,如果您编辑要添加的测试用例,svg { overflow:hidden }
则 IE 在视觉上与其他浏览器匹配。
因此,在我看来,所有三种浏览器的行为都符合规范,但 Chrome/Safari/FF 都具有更符合大多数用户期望的 UA 规则。
如果我可以独自离开,这就是我要停止回答的地方。
但是,如果您编辑测试用例添加svg { overflow:visible }
,Chrome 和 Firefox 都不会“正确”显示溢出的内容。我不确定如何用这个答案的其余部分来解决这个数据点。:/