(wrong string) 關於楷體作為Generic Font Family的討論

2013/11/16 Bobby Tung <bobbytung@wanderer.tw>

>
> 在電子書的設計上,由於各方的字體不一,所以現在偏向僅指定Generic font family,自動帶出系統默認字。例如
>
> P {font-family: serif;}
>

我个人不赞同这样直接用generic family,和CSS规范的用意(CSS2.1 15.3.1
http://www.w3.org/TR/CSS2/fonts.html#generic-font-families)不符。


如果要使用默认字体(在Chrome中名为standard font,在Firefox中名为default font),则不设字体即可。


> @樣能滿足一般的需求,也不需讓designer得先考量有哪些字可用,以及fallback順序。楷書我們目前得:
>
> .kai {font-family: "楷體-繁", "標楷體",serif;}
>
> 有沒有辦法做到單純將楷體指定為
>
> .kai {font-family: cursive;}
>
> 了事,@是我期盼的結果。
>

我大体理解Bobby提案的目的是,直接设generic
family,是为了解决自动选择宋体或楷体(即使在不同系统上的宋体字体名称不一)。这里的假设是,serif默认字体通常是宋体,而sans-serif通常为黑体。然后希望cursive默认为楷体。这样就包括了主要的中文正文字体。(附带的假设是,仿宋用于正文字体的情况较为罕见,所以可以不用管。)

然而,现有的规范其实并没有禁止将楷体归类到cursive中,user agent也完全可以做此设置。

问题出在:主流浏览器(包括我见过的电子书设备)都没有提供用户设置cursive字体的配置项。大多数浏览器(及电子书设备)允许选择默认字体,有一些在高级选项里允许设定serif、sans-serif和monospace的默认字体,但是没见过有允许设置cursive和fantasy的默认字体。

我个人对此的理解是,这里的假设是cursive和fantasy都不是正文字体(因为可能是难以阅读的草书或艺术字体),所以几乎没有必要提供定制的fallback。

所以现实情况是,在所有平台上,serif/sans-serif应该会有较为确定的fallback结果。但如果鼓励以 font-family:
cursive
来设置楷体,导致的问题是,以楷体作为正文字体的内容,在大多数浏览器上会如何显示?尤其是其非中文的部分?比如英文就变成某种中文用户很难识别的手写体?

进一步来说,用户可能可以设置serif/sans-serif的默认字体,但是不能设置cursive字体。这导致用户无法通过override系统设置来改善阅读效果。


> 若順著定義走,就變成要有個機制,讓@font-face能指定italic為楷體。不但機制更為複雜,也沒有解決問題。
>

italic的问题我后来想了一下,也许问题是反过来的,就是中文书法字体应该将自己标识为italic!而那些字体其实都没有标。



>
> 所以要就是把cursive加入note,來泛指所有CJK字型中具備書寫感的字體,不然另外定個值來處理。
>
> 至少把楷、行、草從serif中拉出來沒有異議。
>

故我对于把楷体从serif拉出来存疑问。楷体作为正文字体用途时更适合保持在serif。实际上css 3  fonts里这样写:

serif

Serif fonts represent the formal text style for a script.
 cursive

Glyphs in cursive fonts generally use a more informal script style


如果把用于正文字体的楷体归入 cursive,是与此定义相悖的。

Received on Monday, 18 November 2013 08:03:58 UTC