- From: John Hax <johnhax@gmail.com>
- Date: Mon, 18 Nov 2013 16:03:26 +0800
- To: Bobby Tung <bobbytung@wanderer.tw>
- Cc: (wrong string) 吳旭昌 <wu.hsuchang@gmail.com>, (wrong string) 興趣小組 <public-html-ig-zh@w3.org>
- Message-ID: <CAEeYXHVA4W5HLV7G0xacZ09BeQWC4Fyjo+tt2NyRd6p6ZGmBDQ@mail.gmail.com>
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