div css網頁布局中對字體的控制是非常重要的,對于需要精確效果的頁面而言。這類設置會非常有用。對于一般用戶與開發者而論,使用瀏覽器默認字體即可,VeVb.com鮮有這方面的知識的介紹。此文分享了作者很獨特的css實踐經驗。從此文可以看出。對頁面字體的控制與設置的思考,將css的工作進行的更加深入了。
body {font-family: arial, sans-serif; }
這是我迄今發現的最好的全局字體解決方案。當然,所謂“最好”,也只是基于我個人的評判標準。所以我還是得分析一下其他的寫法有什么缺點,最后再總結這個寫法的特點。
body {font-family: "宋體", sans-serif; }
這個寫法可能的缺點在于:
1. 宋體在safari和vista的ie 7下,看起來很難看。(我稍后把截圖補上)
2. 宋體的英文字很難看。
3. 如果在css里寫中文,你得小心你html和css的編碼是否一致。
body {font-family: simsun,sans-serif; }
這樣寫,可以避免上面的第三個問題。但是宋體本身確實很難看。我們希望在不同平臺下,都用各自默認的字體。xp是宋體,vista是微軟雅黑,mac是黑體。這樣的話,只能將字體的第一個設置為英文字體,這樣遇到中文的時候,瀏覽器會自動調用默認字體(vista ie 7的一些版本里貌似默認還是宋體,這個我就無能為力了,交給用戶設置的自主權吧)
body {font-family: tahoma, sans-serif; }
這是一個不錯的解決辦法。tahoma其實是一個挺漂亮的字體(我同事喜歡稱它“大河馬”,哈哈)。但是它其實會帶來一些問題:
1. 由tahoma顯示的中文,在ie 6里,下劃線會緊緊的貼住中文字,很難看。
2. ie 6下,tahoma無法正確的設定為13px。它會跟14px一樣大。但是其他瀏覽器沒有這個問題。
3. 如果一行里同時出現中文和英文,且這一行里有元素被定義了vertical-align屬性,在ie 6、7里會導致文字高低不齊,甚至下劃線錯位。
body {font-family: arial, ans-serif; }
上述兩個問題,arial都沒有。但是arial也有缺點:
1. 比tahoma難看。
2. tahoma里的第三個問題也同樣存在。
不過,這個bug是有個解決辦法的,就是將這一行定義zoom:1。
所以,如果不嫌難看,定義為arial是最合適的。如果實在不喜歡,可以將全局定義為tahoma,然后再將有下劃線的(如鏈接)文字定義為arial,至少可以緩解一下。
最后,對于全局字體,補充一點:
ie里,所有的表單元素都不繼承body的字體屬性,需要單獨設置:
input, label, select, option, textarea, button, fieldset, legend {
font-family:tahoma,sans-serif;
}