px
(像素): 將像素的值賦予給你的文本。這是一個絕對單位, 它導致了在任何情況下,頁面上的文本所計算出來的像素值都是一樣的。em
s: 1em 等於我們設計的當前元素的父元素上設置的字體大小 (更加具體的話,比如包含在父元素中的大寫字母 M 的寬度) 如果你有大量設置了不同字體大小的嵌套元素,這可能會變得棘手, 但它是可行的,如下圖所示。為什么要使用這個麻煩的單位呢? 當你習慣這樣做時,那么就會變得很自然,你可以使用em
調整任何東西的大小,不只是文本。你可以有一個單位全部都使用 em 的網站,這樣維護起來會很簡單。rem
s: 這個單位的效果和em
s 差不多,除了 1rem
等於 HTML 中的根元素的字體大小, (i.e.<html>
) ,而不是父元素。這可以讓你更容易計算字體大小,但是遺憾的是,rem
s 不支持 Internet Explorer 8 和以下的版本。
元素的 font-size
屬性是從該元素的父元素繼承的。所以這一切都是從整個文檔的根元素——<html>
開始,瀏覽器的 font-size
標准設置的值為 16px。在根元素中的任何段落 (或者那些瀏覽器沒有設置默認大小的元素),會有一個最終的大小值:16px。其他元素也許有默認的大小,比如 <h1>
元素有一個 2ems 的默認值,所以它的最終大小值為 32px。當你開始更改嵌套元素的字體大小時,事情會變得棘手。比如,如果你有一個 <article>
元素在你的頁面上,然后設置它的 font-size 為 1.5em
s (通過計算,可以得到大小為 24px),然后想讓 <article>
元素中的段落獲得一個計算值為 20px 的大小,那么你應該使用多少 em。
你需要將 em 的值設置為 20/24, 或者 0.83333333em
s. 這個計算可能比較復雜,所以當你設置的時候,你需要仔細一些。如果可以使用 rems 的話,那實現起來就變得簡單不少,避免在可能的情況下設置容器元素的字體大小。
當調整你的文本大小時,將文檔(document)的基礎 font-size
設置為10px往往是個不錯的主意,這樣之后的計算會變得簡單,所需要的 (r)em 值就是想得到的像素的值除以 10,而不是 16。做完這個之后,你可以簡單地調整在你的 HTML 中你想調整的不同類型文本的字體大小。在樣式表的指定區域列出所有font-size
的規則集是一個好主意,這樣它們就可以很容易被找到。