css - 如何在 FireFox 中为 SVG 使用十六进制值

标签 css firefox svg sass

我正在使用 CSS 类将 SVG URL 加载到网页中。这适用于我测试过的所有浏览器,除了 Firefox 35.0.1(可能还有更早版本的 Firefox)。我注意到,当使用实际颜色名称(例如白色)作为笔划时,它会按预期工作,但是当我使用十六进制值(例如 #ffffff)时,它根本不会显示笔划。根据 MDN,hex values are supported .

所以,这工作正常:

.ui-stroke-icon .ui-icon-head:after,
    background-image: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 540 540" enable-background="new 0 0 540 540" xml:space="preserve"><path fill="none" stroke="white" stroke-width="8" stroke-miterlimit="10" d="...svg coordinates here..."/></svg>

但这不是:

.ui-stroke-icon .ui-icon-head:after,
    background-image: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 540 540" enable-background="new 0 0 540 540" xml:space="preserve"><path fill="none" stroke="#ffffff" stroke-width="8" stroke-miterlimit="10" d="...svg coordinates here..."/></svg>

有什么方法可以在这里使用十六进制值作为颜色?这确实有助于让我的 Sass 尽可能干爽。

最佳答案

字符#是reserved in URLs作为片段标识符的开始。您必须将其编码为 %23 才能使 URL 有效。这不是 Firefox 的错误。

或者,您可以使用 base64 对整个字符串进行编码。

关于css - 如何在 FireFox 中为 SVG 使用十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28588050/

相关文章:

html - Bootstrap Carousel Arrows 不会响应 z-index 的变化

javascript - CSS 根据 Javascript 条件更改其属性

firefox - 如何让 Firefox 直接打开 RSS(像其他 XML 文件一样),而不是下载?

javascript - 当周围的 <text> 元素有 text-anchor=start 时居中 SVG <tspan> 元素

css - D3 树布局 : weird behavior of shadow filter when . nodeSize() 被应用

html - 他们如何能够如此流畅地设计视频风格?

html - CSS 子组合器

javascript - 从 Firefox 的缓存中读取脚本标签的来源

javascript - 单击输入字段中 keyup 事件的链接

CSS使背景图像使用字体字符