V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Can I use?
http://caniuse.com/
Less
http://lesscss.org
Cool Libraries
Bootstrap from Twitter
Jetstrap
jmyz0455
V2EX  ›  CSS

CSS 为什么不能用 SourceHanSansCN 或 SourceHanSansSC 引入思源黑体 CN Normal 或 思源黑体 Normal?

  •  
  •   jmyz0455 · 2017-02-20 17:32:27 +08:00 · 10924 次点击
    这是一个创建于 2612 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在浏览思源黑体的官方 GitHub 主页时有一事不解:

    在 Language-specific OTFs 里点击 Simplified Chinese 下载的文件叫 SourceHanSansSC.zip ,解压后大小 109MB ,在中文语言的 Windows 里点击 SourceHanSansSC-Normal.otf 文件显示字体名称是“思源黑体 Normal ”。

    然后我在 Region-specific Subset OTFs 里点击 China 下载的文件叫 SourceHanSansCN.zip ,解压后大小 55.8MB ,在中文语言的 Windows 里点击 SourceHanSansCN-Normal.otf 文件显示字体名称是“思源黑体 CN Normal ”。

    问题来了,英文的网站下载英文的字体文件,字体属性名称却是中文,我好奇地安装了字体并写了个 Demo ,果然出现 font-family: "SourceHanSansCN"; 不生效而只有 font-family: "思源黑体 CN"; 生效的情况。而思源黑体和 SourceHanSansSC 同理。( PS :关于 SourceHanSansCN 和 SourceHanSansSC 的区别可以看这个 知乎回答,我一开始也不懂)

    大家可以看谷歌的 Noto 字体的做法,只有一个名字 Noto Sans CJK SC , 一句 font-family: "Noto Sans CJK SC"; 即可,没有任何歧义。

    而且各位可能觉得这只是 Adobe 的喜欢这样命名没问题,但是你们可以看一下你们的 Windows 系统-查看安装的字体,你会发现你的系统没有安装一个叫 Microsoft YaHei 的字体,只安装了微软雅黑,但是 font-family: "Microsoft YaHei"; 或 font-family: "微软雅黑"; 均可以生效。

    说得有点乱,其实就是我好奇思源黑体在 css 的 font-famliy 命名上为什么不是中英文通用(但是我看到有人安装的字体直接就叫 SourceHanSansCN 或 SourceHanSansSC ),而微软雅黑却没有这个问题(可能也是系统的锅?)。小白问题求轻喷。

    6 条回复    2017-02-21 10:58:02 +08:00
    lslqtz
        1
    lslqtz  
       2017-02-20 18:27:43 +08:00 via iPhone
    没有空格?
    Bardon
        2
    Bardon  
       2017-02-20 20:04:22 +08:00
    windows 下不知道
    linux 下我知道 `fc-list :lang=zh` 能打印出字体的 title
    jmyz0455
        3
    jmyz0455  
    OP
       2017-02-21 08:15:33 +08:00
    @lslqtz SourceHanSansCN 和 SourceHanSansSC 不用空格吧,你指的是?
    lslqtz
        4
    lslqtz  
       2017-02-21 09:40:09 +08:00 via iPhone
    @jmyz0455 系统显示这个字体不能用是 bug 但我更怀疑是没有空格。
    因为大部分字体英文都包含空格
    lslqtz
        5
    lslqtz  
       2017-02-21 09:41:39 +08:00 via iPhone
    SourceHanSansCN-Normal ?
    ewex
        6
    ewex  
       2017-02-21 10:58:02 +08:00
    1. 回答“标题”:你写错了,肯定不能用。正确写法 Source Han Sans SC 和 Source Han Sans CN 。另外 Normal 需要额外定义,默认情况下不同操作系统、不同系统语言、不同浏览器、不同浏览器版本、不同浏览器语言也是不一样的(我装逼地写了这么多不同,实际不一致的情况很少)。

    2. 回答“问题来了”:按照第二、三、六段落内容推测你的系统为简体中文,属性是中文难道体验不是更好?至于为什么不是全中文这应该是 Adobe 的命名问题。区别的问题,没必要看逼忽,官网和命名上就很容易理解。

    3. 第六段落:你需要特别说明系统语言,英文版下面就是 Microsoft YaHei ,虽然可以推断你用的是简体中文版。另外 CSS 里的字体最好不要用非英文,原因你可以去逼忽看。

    4. 最后一段:中英文通不通用无所谓,原因同上。微软雅黑没这问题不是系统的锅,是字体商的命名问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2353 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:12 · PVG 00:12 · LAX 09:12 · JFK 12:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.