px:在web頁面制作的初期埋心,我們都是使用“px”來設置我們的文本指郁,因為他比較精確。但是這種方法存在一個問題拷呆,當用戶在瀏覽器中縮放Web頁面時闲坎,他改變了瀏覽器的字體大小,這時會使用我們的Web頁面布局被打破茬斧。因此腰懂,這時就提出了使用“em”來定義Web頁面的字體。
em:而em需要一個參考點项秉,一般都是以的“font-size”為基準绣溜。比如說我們使用“1em”等于“10px”來改變默認值“1em=16px”,這樣一來娄蔼,我們設置字體大小相當于“14px”時怖喻,只需要將其值設置為“1.4em”。我們一般會在body上設置font-size=62.5%來設置基準點岁诉。這樣你14px只需要寫成1.4em锚沸。當然em是相對單位,如果你在父元素上設置了font-size=1.4em涕癣,如果你在子元素上再設置一個1.4em的話哗蜈,是不對的,因為子元素的font-size是相對的父元素的1.4em再來計算得出的坠韩。所以距潘,這點要注意一下。如果子元素要14px的話只搁,還是設置font-size是1em便好绽昼。
rem: 在rem還未出現(xiàn)之前,用em來定義父元素和子元素不同的字體大小時候還是挺麻煩的须蜗,這樣一層一層算起來很老火硅确。如果可以兼有em的優(yōu)點又摒棄它計算起來麻煩的缺點的話就完美了目溉。rem在此背景下應運而生。CSS3引入了rem,它是相對于根元素菱农,這樣就意味著缭付,我們只需要在根元素確定一個參考值,循未,在根元素中設置多大的字體陷猫,這完全可以根據(jù)您自己的需要。我在根元素中定義了一個基本字體大小為62.5%(也就是10px的妖。設置這個值主要方便計算绣檬,如果沒有設置,將是以“16px”為基準 )嫂粟。從上面的計算結果娇未,我們使用“rem”就像使用“px”一樣的方便,而且同時解決了“px”和“em”兩者不同之處星虹。
瀏覽器的兼容性方面
rem是CSS3新引進來的一個度量單位零抬,所以就存在在不支持CSS3的瀏覽器,以下瀏覽器都支持:Mozilla Firefox 3.6+宽涌、Apple Safari 5+平夜、Google Chrome、IE9+和Opera11+卸亮。
如果想兼容IE的話忽妒,也可以把“px”和“rem”一起使用,用"px"來實現(xiàn)IE6-8下的效果兼贸,然后使用“Rem”來實現(xiàn)代瀏覽器的效果段直。