剛學網頁制作的時候,老師曾經告訴我必須用CSS強制定義字體大小,否則保證每個人都看到一致的效果。這一點在現在的中國站點尤為明顯。包括網易、搜狐這些門戶網站在內的大部分站點,用的都是絕對單位px(像素)。但是,如果從網站易用性方面考慮,字體大小應該是可變的,一些視力不是那麼好的人需要放大字體才能看得清頁面內容。然而,占據大部分浏覽器市場的IE無法調整那些使用px作為單位的字體大小。國外人士非常重視網站的易用性,相當一部分外國站點已經使用em作為字體單位。
1em指的是一個字體的大小,它會繼承父級元素的字體大小,因此並不是一個固定的值。任何浏覽器的默認字體大小都是16px。因此,12px = 0.75em。實際應用中為了方便換算,通常會如下設置樣式:
Html { font-size: 62.5%; }
這樣,1em = 10px。我們常用的1.2em理論上就是12px。但是,這個換算在IE浏覽器下不成立,1.2em會比12px稍大一些,解決辦法是把Html標簽樣式中的62.5%改成63%,即:
Html { font-size: 63%; }
在中文的文章中,一般會在段首空兩格。如果用px作為單位,對12px字體來說需要空出24px,對14px字體來說需要空出28px……這樣換算非常不通用。如果用上em單位,這個問題就很好解決了,1個字的大小就是1em,那兩個字的大小就是2em。因此,只需這樣定義就行了:
p { text-indent: 2em; }