很長(zhǎng)一段時(shí)間,我都使用12px作為網(wǎng)站的主要字體大小。10px太小,眼睛很容易疲勞,14px雖容易看清,卻破壞頁(yè)面的美感。唯獨(dú)12px在審美和視力方面都恰到好處。
誰(shuí)對(duì)我的網(wǎng)站字體大小有意見(jiàn)?
我老爸,他是第一個(gè)向我反映看不清我的網(wǎng)站文字的人。這使我意識(shí)到12px,其實(shí)只是讓我覺(jué)得很不錯(cuò)而已,而對(duì)于那些視力下降明顯的中年以上的人來(lái)講,幾乎等于10px對(duì)于我的感覺(jué)。
于是我告訴他,在“查看”里調(diào)整“文字大小”就可以了。但是卻發(fā)現(xiàn)這是徒勞的。在Firefox能輕易調(diào)整的字體大小,怎么在IE就變得如此”堅(jiān)不可調(diào)“?
問(wèn)題出在哪?
我又試著打開(kāi)中國(guó)的三大門戶—新浪,網(wǎng)易,搜狐。它們的字體無(wú)一例外的在IE里失去可調(diào)性??磥?lái)這不是我網(wǎng)站獨(dú)有的毛病。再看看MSN,Google,A list apart,華盛頓郵報(bào),在IE里卻是可調(diào)的。難道IE在字體調(diào)整上也搞歧視不成?
困擾我的問(wèn)題直到看到這篇大作:How to size text using ems,才得到徹底的解決。
關(guān)鍵點(diǎn):
1. IE無(wú)法調(diào)整那些使用px作為單位的字體大?。?BR>2. 國(guó)外的大部分網(wǎng)站能夠調(diào)整的原因在于其使用了em作為字體單位;
3. Firefox能夠調(diào)整px和em,但是96%以上的中國(guó)網(wǎng)民使用IE瀏覽器(或內(nèi)核)。這意味這中國(guó)網(wǎng)站的字體大小可以被認(rèn)為不可調(diào)。
95%的中國(guó)網(wǎng)站需要重寫CSS
在我所觀察的中國(guó)網(wǎng)站中,包括三大門戶,以及“引領(lǐng)”中國(guó)網(wǎng)站設(shè)計(jì)潮流的藍(lán)色理想,ChinaUI等都是使用了px作為字體單位。只有百度好歹做了個(gè)可調(diào)的表率。
而在大洋彼岸,幾乎所有的主流站點(diǎn)都使用em作為字體單位,也就是可調(diào)的。
沒(méi)錯(cuò),px比em更加容易使用,我也敢打賭大部分讀者不知道em為何物或者它相當(dāng)于多少px。
國(guó)外人士如此重視網(wǎng)站易用性(Accessibility),不僅因?yàn)槠涓俟痰?B>人文精神,直接原因可能是因?yàn)橛幸徊糠蓙?lái)約束他們—例如美國(guó)的Section 508,強(qiáng)制網(wǎng)站達(dá)到一定的易用性。所以沒(méi)有哪個(gè)主流站點(diǎn)愿意被那些視力下降或是殘缺的人告上法庭。
注: 在中國(guó), 可能把微軟告上法庭來(lái)的更簡(jiǎn)單點(diǎn),為什么IE對(duì)于px那么死板。
如何重寫你的網(wǎng)站CSS
Jorux.com作為一個(gè)對(duì)視力下降人士負(fù)責(zé)任的站點(diǎn),已經(jīng)重寫了CSS的Font-size部分。在這里,Jorux和各個(gè)有人文精神的網(wǎng)站主討論如何用em重寫Font-szie的問(wèn)題。
em vs. px
em是何物?
em指字體高,任意瀏覽器的默認(rèn)字體高都是16px。所以未經(jīng)調(diào)整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。為了簡(jiǎn)化font-size的換算,需要在css中的body選擇器中聲明Font-size=62.5%,這就使em值變?yōu)?6px*62.5%=10px, 這樣12px=1.2em, 10px=1em, 也就是說(shuō)只需要將你的原來(lái)的px數(shù)值除以10,然后換上em作為單位就行了。em有如下特點(diǎn):
1. em的值并不是固定的;
2. em會(huì)繼承父級(jí)元素的字體大小。
重寫步驟:
1. body選擇器中聲明Font-size=62.5%;
2. 將你的原來(lái)的px數(shù)值除以10,然后換上em作為單位;
簡(jiǎn)單吧,如果只需要以上兩步就能解決問(wèn)題的話,可能就沒(méi)人用px了。經(jīng)過(guò)以上兩步,你會(huì)發(fā)現(xiàn)你的網(wǎng)站字體大得出乎想象。因?yàn)閑m的值不固定,又會(huì)繼承父級(jí)元素的大小,你可能會(huì)在content這個(gè)div里把字體大小設(shè)為1.2em, 也就是12px。然后你又把選擇器p的字體大小也設(shè)為1.2em,但如果p屬于content的子級(jí)的話,p的字體大小就不是12px,而是1.2em=1.2 * 12px=14.4px。這是因?yàn)閏ontent的字體大小被設(shè)為1.2em,這個(gè)em值繼承其父級(jí)元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作為其子級(jí),em則繼承content的字體高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。
3. 重新計(jì)算那些被放大的字體的em數(shù)值。避免字體大小的重復(fù)聲明,也就是避免以上提到的1.2 * 1.2= 1.44的現(xiàn)象。比如說(shuō)你在#content中聲明了字體大小為1.2em,那么在聲明p的字體大小時(shí)就只能是1em,而不是1.2em, 因?yàn)榇薳m非彼em,它因繼承#content的字體高而變?yōu)榱?em=12px。
詭異的12px漢字(原因待查)
本人在完成em轉(zhuǎn)換時(shí)還發(fā)現(xiàn)了一個(gè)詭異的現(xiàn)象,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而是稍大一點(diǎn)。這個(gè)問(wèn)題我已經(jīng)解決,你只需在body選擇器中把62.5%換成63%就能正常顯示了。原因可能是IE處理漢字時(shí),對(duì)于浮點(diǎn)的取值精確度有限。閱讀本篇的讀者還有其他解釋嗎?
本現(xiàn)象只發(fā)生在12px的漢字,英文不存在此現(xiàn)象。你可以在這里下載到此表現(xiàn)此現(xiàn)象的文件。下載后請(qǐng)讀者用IE打開(kāi)sample.htm, 可以看到第一段文字明顯長(zhǎng)于第二段。然后你可以用編輯器打開(kāi)style.css,看看究竟發(fā)生了什么。解決方法就是把style.css中的62.5%換為63%。演示鏈接
還可以做哪些改進(jìn)
為什么還需改進(jìn):
1. 你的網(wǎng)站css過(guò)于復(fù)雜,以至于不知道元素的從屬關(guān)系,很難重寫css;
2. 絕大部分人看了本文之后仍然不會(huì)重寫css;
3. 很大部分人不知道瀏覽器可以調(diào)整頁(yè)面的字體大小。
所以你需要一個(gè)諸如本站信息框中的字體大小調(diào)整控件。
相信本站讀者的英語(yǔ)能力,這里就不再羅嗦了,請(qǐng)參看:The Text Changer
Important reference:
1. How to size text using ems
2. The Text Changer
備注:
1. 自網(wǎng)站Reboot以來(lái),老爸又反映我整天在”屬性一”"屬性二”的,看不大明白,已經(jīng)拒絕訪問(wèn)Jorux.com了;
2. 讀者對(duì)如何用em重寫css,或是對(duì)字體大小調(diào)整控件有任何疑問(wèn),請(qǐng)留言;
3. 本站在加強(qiáng)易用性上做了如下改進(jìn):a. 用em重寫了css; b. 去除了#和文本廣告代碼,提高了網(wǎng)頁(yè)加載速度; c. 增加了字體大小調(diào)整控件;
4. 重新整理”O(jiān)ther Blogger”鏈接,請(qǐng)發(fā)現(xiàn)被摘掉鏈接的網(wǎng)站自行摘除鏈向本站的鏈接,本站停止交換友情鏈接。尚保留的網(wǎng)站有如下特點(diǎn):a. 非日記式博客;b. 內(nèi)容優(yōu)秀;c. 原創(chuàng)為主;
5. 本站常規(guī)在周一發(fā)表post,間隔為一到兩周,感謝讀者對(duì)本站的關(guān)注, 以后除星期一以外,您都不需更新本站Feed了。