15楼#
发布于:2015-05-19 21:01
pcxfirefox:@aaaa007cn字体 fallback 是有先后的 比如页面设置 verdana, tahoma 这两个字体都不含中文 那么中文部分是使用默认的中文无衬线字体 还是使用默认的系统无衬线字体 还是优先选择 verdana 的 fallback 字体或者 tahoma 的 fallback 字体? 如果 verdana 的 fallback 字体本身不含中文,但是这个 fallback 字体自己再次 fallback 到某个中文字体 那么又该如何选择? 我不知道“正确”的做法应该是怎样 |
|
|
16楼#
发布于:2015-06-19 16:07
liuxb:上面那个bugzilla意思是说无衬线字体被映射到宋体是不对的,因为宋体是衬线字体。不好意思,回个老帖 这个fallback的bug和上面的那个bugzilla无任何直接联系,因为根据changelog(https://hg.mozilla.org/mozilla-central/rev/179a122ae672)明显那个只是改了默认的设置成雅黑而已,并没有对fallback的机制进行改动。如果不习惯,单纯地将简中-无衬线字体的字体改成宋体即可回到37的状态。 本人恰好在几年前研究过各个浏览器字体的选择机制。事实上,firefox的字体fallback机制一直都是这样的没有改变过。 它并不遵循字体/系统本身的fallback机制,而是如果在指定字体里查不到该字符的时候会自动调用能显示此字符的语言的字体设置(对于多种语言都能显示的字符,比如汉字到底是日文还是中文,据我观察是根据系统语言来优先选择,然后再根据firefox的内容-语言的优先级选择。一般人的设置肯定都是会优先选用中文字体就是了,但是一些用英文系统的孩子就会遇到奇怪的问题~)。 当然,和网页的语言指定也有一定关系,不过在此按下不表,因为无关。 ![]() 这图是我当年做的测试,现在结果依然同样不变。图中1指的是简中-无衬线那个设置,2指的是日文-无衬线的设置,3指的是western(现在叫latin了)的无衬线的设置。 可以看到在不指定语言的情况下(大部分网页都没有指定语言。只有维基百科之类的网站网页标准化做得比较好,有指定;但是如果网页编码非Unicode而是ANSI,那么编码本身会被当成语言——请注意),如果你指定了一个无CJK字符的字体给CJK字符,这些CJK字符的字体会被firefox自身地fallback到简中-无衬线的设置里去,而不会遵循系统注册表里的那个字体本身的fallback设定。这点从测试文件的第二行可以明显地看出。 |
|
17楼#
发布于:2015-06-26 14:07
烈之斩:不好意思,回个老帖那能不能帮忙解决38的这个问题? 38,37新建配置,只设置了zh-cn的字体,如图,中文字体不一样。38用雅黑,37用宋体 图片:Untitled.png ![]() 我的目的是想让38和37一样,默认使用宋体而不是雅黑。 系统是英文版8.1,英文版firefox html文件内容 <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 中文字体 yingwenziti </html> 你要问那为什么不干脆设置为宋体呢,设置为宋体后,英文字体就也用宋体显示了,太丑,这也是个老问题了。 图片:Untitled1.png ![]() |
|
|
18楼#
发布于:2015-07-08 18:20
|
|
19楼#
发布于:2015-07-09 07:42
liuxb:那能不能帮忙解决38的这个问题?稍微去bugzilla问了下,发现问题比想象的要简单。我上面说“这个fallback的bug和上面的那个bugzilla无任何直接联系”,是我错了!确实就是那个bug造成的改动。 不过,和修改默认的字体到雅黑倒没关系,而是另外一条设置的改动: 1.17 -pref("font.name-list.sans-serif.zh-CN", "MS Song, SimSun, SimSun-ExtB"); 1.18 +pref("font.name-list.sans-serif.zh-CN", "Microsoft YaHei, SimHei, Arial Unicode MS"); 导致的影响。 这个选项在about:congfig里可以改,大概意思就是无字符可用时的fallback候选选项吧! 如果你不想要微软雅黑,只要在最前面加上SimSun就可以回到37的behavior啦(英文Tahoma,中文宋体)。 顺便一提,稍微研究了下——如果你把这个设置也改成英文字体会怎么样呢? 于是我发现就会fallback到日文的字体设置font.name.sans-serif.ja,再fallback到font.name-list.sans-serif.ja;什么你说这俩你都设成英文字体?那就会fallback到韩文的设置。什么还不够?就会fallback到繁中的设置。还不够?……我懒得测试了,会fallback到Arial Unicode MS,应该来自于beng/knda/mlym/orya/telu等语言的设置,反正永远不会遵循系统的fallback就是了,这点倒是firefox一直没有改过的。 |
|
20楼#
发布于:2015-07-09 09:03
|
|
|
上一页
下一页