瀏覽器是我們最必用的軟體之一,文本又是 網頁設計 中最主要的元素,在瀏覽器顯示文本的過程中有許多有趣的細節,值得展開來講講,或許能減少一些誤解。這是一個比較粗略的,概括性的介紹,盡可能不涉及過多的技術細節和具體實現,而立足于給網頁設計開發者和設計師提供一些正確的概念。
下面的介紹主要根據我對 WebKit 和 Gecko (Firefox) 的印象來談,其他的瀏覽器也大致相同,如有闕漏之處歡迎指出。
解碼
當瀏覽器收到來自網頁設計的伺服器資料之後,第一步是要把它解碼成可以閱讀的文本,因為歷史原因,不同區域和語言的網頁設計可能會使用不同的編碼方式,而瀏覽器判斷編碼主要是依據以下方法:
網頁設計的伺服器返回的 HTTP 頭中的“ Content-Type: text/html; charset ”資訊,這一般有最高的優先順序;
網頁本身 meta header 中的 Content-Type 資訊的 charset 部分,對於 HTTP 頭未指定編碼或者本地檔,一般是這麼判斷;
假如前兩條都沒有找到,瀏覽器功能表裡一般允許用戶強制指定編碼;
部分瀏覽器 (比如 Firefox) 可以選擇編碼自動檢測功能,使用基於統計的方法判斷未定編碼。
分段
編碼確定後,網頁就被解碼成了 Unicode 字元流,可以進行進一步的處理,比如網頁設計解析了,不過我們這裏跳過 HTML/XML 解析的細節,單講得到了解析後的文本元素之後該怎麼處理。
因為我們得到的文本可能是很多種語言混雜的,裡面可能有中文、有英文,它們可能要用不同的字體顯示;也可能有阿拉伯文、希伯來文這種從右到左書寫的 文字;也有可能涉及印度系文字這樣涉及複雜佈局規則的文字;另外,還可能有網頁內自己指定的文本語言,比如 < span lang="jp" >日本語< /span > 這樣的標記,使得日文漢字可以使用日文字體顯示 (因為 Han Unification 導致這些漢字和中文裏的漢字使用同樣的代碼點,儘管很多寫法不同),"lang" 屬性也可以在 HTTP 頭、< meta > 或者 < html > 出現,用於標記整個文檔的全局語言,通常這是一種好的習慣,方便瀏覽器進行字體搭配。
建議
基於以上的簡單介紹,可以嘗試提出一個在現有瀏覽器下,針對中文用戶的,書寫 CSS 字體選擇規則的建議,如下:
首先確定要選擇字體的元素應該使用的字體風格,比如是襯線字體、非襯線字體還是 cursive、fantasy 之類的;
確定了風格之後,先選擇西文字體,優先把平台獨特的、在該平臺下效果更好的字體寫上,比如 Mac OS X 下有 Helvetica 也有 Arial,但 Helvetica (可能) 效果更好,Windows 下則一般只有 Arial,那麼寫 Helvetica, Arial 就比 Arial, Helvetica 或者只有 Arial 更好;
然後列出中文字體,原則相同,多個平臺共有的字體應該儘量放在後邊,獨有的字體放在前面,還需要照顧到 Mac OS X/Linux 下一般用戶習慣用(細)黑體作為默認字體,Windows 下習慣以宋體作為默認字體的情況,比如 STXihei, SimSun 這樣的寫法比較常見,如果寫作 SimSun, STXihei,但 Mac OS X 上裝了 SimSun 效果就不會太好看。
最後還是應該放上對應的 generic family,比如 sans-serif 或者 serif。
儘量用字體的基本名稱 (比如 English locale 下顯示的),而不要用本地化過的名稱。除非特殊情況 (Windows 下“某些”瀏覽器在特定編碼下只能支援本地化的字體名稱)。Mac OS X 下字體名稱可以用 Font Book 查到 (功能表 Preview -> Show Font Info),Windows 下字體資訊在微軟的網站可以得到,Linux/X11 下可以使用 fc-list 命令查到。
字體名稱中包含空格時記住用引號擴起,比如 "American Typewritter" 和 "Myriad Pro"。
文檔開頭最好指明網頁設計語言,比如 < html lang="zh-tw" >,可以使用的網頁設計語言標記參見 W3C 的說明。
轉貼來源:W3CTech
http://www.piece2ec.com.tw/news.asp?ID=1045
參考文獻:
1.王大維,2002,台灣工商業可延伸企業報告語言分類標準之建立,國立台灣大學會計研究所未出版碩士論文。
2.位元文化,2002,XML 技術實務,台北:文魁資訊股份有限公司。
3.林宥吟,2002,延伸性企業報告語言之產業應用-以資產管理產業為例,私立中原大學會計系碩士班未出版論文。
留言列表