【问题标题】:Chrome not rendering svg for fonts when hash included包含哈希时,Chrome 不会为字体呈现 svg
【发布时间】:2013-06-16 10:33:33
【问题描述】:

Chrome 渲染 SVG 字体比 TTF 更好,所以我想强制它使用 SVG 文件。但是当我在声明中只包含 SVG 时,Chrome 不会找到/应用该字体。如果我删除井号,它确实应用它(可能是在 svg 中找到的第一件事)!我做错了什么?

文件结构

/
/fonts
/styles

styles.css

@font-face {
    font-family: "TeXGyreHerosCnBoldItalic";
    src: url( "../fonts/texgyreheroscn-bolditalic-webfont.svg#TeXGyreHerosCnBoldItalic" ) format("svg" );
    font-weight: normal;
    font-style: normal;

}

html

<div style="font-family: 'TeXGyreHerosCnBold';">Some text</div>

如果我改为这样做,它会起作用:

src: url( "../fonts/texgyreheroscn-bolditalic-webfont.svg" ) format("svg" );

【问题讨论】:

  • @cimmanon 谢谢,看起来是一样的。你能解释为什么这是一个安全风险吗?我看不出加载 SVG 与仅加载 #name 定义的部分是一种安全风险。
  • 是的,我不太确定为什么这是一个安全问题,并且链接的错误报告没有详细说明。谷歌在这里也不是很有帮助。我只能猜测它与访问类似这样的浏览历史记录有关:456bereastreet.com/archive/201112/…
  • @cimmanon 您能否将您的评论作为答案发布,以便我可以将此问题标记为已回答?谢谢。

标签: css google-chrome fonts svg font-face


【解决方案1】:

正如@cinnamon 所建议的,似乎是 Chrome 团队决定您不应该能够遍历 SVG:https://code.google.com/p/chromium/issues/detail?id=128055#c6

@Cinnamon 在这里有更多信息:https://stackoverflow.com/a/16042903/857025

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 2012-10-03
    • 1970-01-01
    • 2012-09-23
    • 2020-06-22
    • 1970-01-01
    • 2011-06-14
    • 2018-12-17
    • 2019-08-08
    相关资源
    最近更新 更多