一、基礎(chǔ)介紹
1、“Ems”: em,大小不固定 ,成為相對(duì)單位(body則相對(duì)瀏覽器的默認(rèn)字體設(shè)置,子集相對(duì)父級(jí)), 瀏覽器默認(rèn)設(shè)置字體大小為16px , 則1em = 16px , 且其可擴(kuò)展,2em = 32px , 目前常用的字體大小px換算成em ,
16px = 1em; 14px = 0.875em; 12px = 0.75em; 10px = 0.625em
2、“Pixels”: px,大小是固定的,稱為絕對(duì)單位,在移動(dòng)端的可訪問(wèn)性差
3、“Points”:pt,大小固定,屬于絕對(duì)單位,適用于印刷、打印媒體。
4、“Percent”: %,跟em相似,以percent來(lái)表示,則當(dāng)前字體的大小為100% ,使用% 設(shè)置字體,你的頁(yè)面字體在移動(dòng)設(shè)備端的可訪問(wèn)性也很好。
二、關(guān)系
一般情況下,1em=12pt=16px=100% . 下面例子前提在body中設(shè)置基礎(chǔ)字體大小。
由上圖可看出,相對(duì)單位em 和 % 會(huì)隨著基礎(chǔ)字體大小的變化而變化,而pt 和 px 不會(huì)變化,這就是為什么選擇em 和 % 設(shè)置web文檔文本的字體(其在移動(dòng)端的訪問(wèn)性也很好)。
三、em 與 % ,em與px 的換算
em的特點(diǎn):
1. em的值并不是固定的;
2. em會(huì)繼承父級(jí)元素的字體大小。
重寫(xiě)步驟:
1. body選擇器中聲明Font-size:62.5%;
2. 將你的原來(lái)的px數(shù)值除以10,然后換上em作為單位;
如果只需要以上兩步就能解決問(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ō)你在#main中聲明了字體大小為1.2em,那么在聲明p的字體大小時(shí)就只能是1em,而不是1.2em, 因?yàn)榇薳m非彼em,它因繼承#content的字體高而變?yōu)榱?em=12px。
詭異的12px漢字
在完成em轉(zhuǎn)換時(shí)還會(huì)發(fā)現(xiàn)一個(gè)詭異的現(xiàn)象,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而 是稍大一點(diǎn)。這個(gè)問(wèn)題我已經(jīng)解決,你只需在body選擇器中把62.5%換成63%就能正常顯示了。
更多信息請(qǐng)查看IT技術(shù)專欄