css - 样式不适用于 Firefox 和 IE 中的 SVG 元素

标签 css internet-explorer firefox svg

这是一个奇怪的问题。我这里有一些简单的 HTML。

<a href="#">
    <svg><use xlink:href="/images/iconSprite.svg#facebook"></use></svg>
</a>

我将它设计成这样。

A{width:40px; height:40px;}    

A > SVG{
    width: 65%;
    height: 65%;
    fill: white;
}

这在 Chrome 中完美运行,并且出于某种原因在 IE9 中完美运行,但是在 Firefox(最新)和 IE 10 和 11 中,元素消失时根本没有样式。

但是,如果我将选择器从 A > SVG 更改为 A > *,它在这两种情况下都能完美运行。这看起来很老套,我宁愿了解问题所在,并尽可能提出一个更简洁的解决方案。

我本以为如果不能在选择器中使用 SVG,那么互联网上会有很多人提到这一点,但我找不到任何东西,所以我一定是做错了什么。

如有任何帮助,我们将不胜感激。

最佳答案

这个问题似乎是由 CSS 中的 svg 选择器大写引起的。以下面的代码片段为例,其中使用 SVG 不起作用,但 svg 可以。

示例:

.wrap-a > SVG {
    background: blue;
}
.wrap-b > svg {
    background: green;
}
<a class="wrap-a">
    <svg width="226" height="226"><circle cx="110" cy="107" r="80" stroke="black" stroke-width="5" fill="red" /></svg>
</a>
<a class="wrap-b">
    <svg width="226" height="226"><circle cx="110" cy="107" r="80" stroke="black" stroke-width="5" fill="red" /></svg>
</a>

这很可能与 SVG 标签区分大小写有关,这与 HTML 标签不同。 * 起作用的原因是它不区分大小写。

关于css - 样式不适用于 Firefox 和 IE 中的 SVG 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28491422/

相关文章:

javascript - 使用 jQuery 将动态 CSS 添加到菜单和主页

html - 在表格中堆叠图像

javascript - 使用 javascript 在 IE 中获取文件大小/类型

Javascript 图像在 Firefox 和 Chrome 中不显示

javascript - execCommand SaveAs 在 Firefox 中是否有效?

javascript - 滚动顶部在 Firefox 上不起作用

css - 移动网络的 max-device-width 和 max-width 有什么区别?

html - 在第四个之后截断操作栏元素

css - 即使缓存在 IE7 中,背景图像加载或显示延迟

html - 记住密码在 ff 中有效,但在 ie 和 chrome 中无效