css - Firefox:将边框/轮廓 CSS 属性应用于 SVG 元素

标签 css firefox svg

Firefox 似乎完全忽略 borderoutline为 SVG 元素定义的 CSS 属性。 SVG 组元素,<g>就我而言,用于将复合元素分组为单个逻辑元素,以简化应用程序中的用户交互。以下代码在 Chrome 中运行得非常好:

<svg>
    <g>
        <rect x="10" y="10" width="50" height="50" fill="yellow"></rect>
        <rect x="20" y="20" width="30" height="30" fill="yellowgreen"></rect>
    </g>
</svg>
g:hover {
    outline: dashed 4px red;
}

http://jsfiddle.net/QQRPj/

在 Chrome 中,一旦将鼠标指针移到两个矩形组上,该组周围就会出现一个红色虚线矩形。然而,我无法让它在 Firefox 中工作,尽管它似乎支持更简单的 CSS 属性,如 cursor , display ,以及与 SVG 相关的属性,例如 described at MDN .

有没有机会做outlineborder CSS 属性在 Firefox 中有效,因此 CSS 更改可能是唯一有效的补丁,而不是修补 SVG 相关代码?

最佳答案

SVG 规范有一个列表 all CSS properties that are valid for SVG边框和轮廓不在该列表中,因此不适用于 SVG。您应该提出 blink bug

如果你想要 SVG 中的边框或轮廓,你必须输入 <rect>将物体绕圆并计算 <rect>如有必要,使用 getBBox 定位。在上述情况下,您可以将鼠标悬停在外部 <svg> 上元素,因为它是一个被替换的元素,因此确实获得了边框和轮廓属性。

关于css - Firefox:将边框/轮廓 CSS 属性应用于 SVG 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17271325/

相关文章:

html - 有没有一种方法可以确保 100% 忠实再现 CSS 或 SVG 中的边框图像?

ASP.NET 创建移动站点

html - clearfix 不适用于绝对位置

html - 不同行中具有不同宽度的表格单元格

javascript - 如何在 Firefox 插件中创建 splitmenu

javascript - Firefox 中的 Bootstrap Scrollspy 错误

javascript - SVG 元素边界框覆盖元素

javascript - 作为 JavaScript 变量的 SVG 对象样式属性

javascript - 我们可以在 jquery 中显示图像的一部分吗?

css - 自定义复选框在 Firefox 上失败