您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關css中px、em、rem有哪些區別的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
區別:px表示像素,是相對長度單位,是相對于顯示器屏幕分辨率來設置字體大小的,不支持IE的縮放;em是相對長度單位,是相對于其父元素來設置字體大小的,支持IE的縮放;rem是相對長度單位,是相對HTML根元素來設置字體大小的。
PX,EM和REM的定義
px表示像素,不會因為其他元素的尺寸變化而變化。
像素的大小是會“變”的,也稱為“相對長度”,越高位的像素,其擁有的色板也就越豐富,越能表達顏色的真實感。
em表示相對于父元素的字體大小,em是相對單位,沒有一個固定的度量值,而是由其他元素尺寸來決定的相對值。
em是相對長度單位,相對于當前對象內文本的字體尺寸,如當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸,國外使用比較多。
任意瀏覽器的默認字體高都是16px,所有未經調整的瀏覽器都符合:1em=16px。那么12px=0.75em;10px=0.625em;為了簡化font-size的換算,需要在css中的body選擇器中聲明Font-size=62.5%,這就使em值變為:16px*62.5%=10px;這樣12px=1.2em;10px=1em,也就是說只需要將你的原來的px數值除以10,然后換上em作為單位就行了。
REM是相對單位,是相對HTML根元素。這個單位可謂集相對大小和絕對大小的優點于一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。
CSS樣式表中px、em和rem單位的特點
一般情況下,我們平時都是用px來定義字體,所以無法用瀏覽器字體放大的功能,而國外大多數網站都可以在IE下使用,這主要是因為:
(1)、IE無法調整那些使用px作為單位的字體大小;
(2)、國外的大部分網站能夠調整的原因在于其使用了em作為字體單位;
(3)、Firefox能夠調整px和em,但是96%以上的中國網民使用IE瀏覽器(或內核)。
那么,css單位px、em和rem的特點分別是什么呢?
1、px的特點
PX實際上就是像素,用PX設置字體大小時,比較穩定和精確。
但是這種方法存在一個問題,當用戶在瀏覽器中瀏覽我們制作的Web頁面時,如果改變了瀏覽器的縮放,這時會使用我們的Web頁面布局被打破,這樣對于那些關心自己網站可用性的用戶來說,就是一個大問題了。
因此,這時就提出了使用“em”來定義Web頁面的字體。
2、em的特點
EM就是根據基準來縮放字體的大小,EM實質是一個相對值,而非具體的數值,這種技術需要一個參考點,一般都是以<body>的“font-size”為基準,如WordPress官方主題Twenntytwelve的基準就是14px=1em。
通常來說,em有如下特點:
(1)、em的值并不是固定的;
(2)、em會繼承父級元素的字體大小。
所以,我們在寫CSS的時候,需要注意以下3點:
(1)、body選擇器中聲明Font-size=62.5%;
(2)、將你的原來的px數值除以10,然后換上em作為單位;
如果只需要以上兩步就能解決問題的話,可能就沒人用px了。經過以上兩步,你會發現你的網站字體大得出乎想象,因為em的值不固定,又會繼承父級元素的大小,你可能會在content這個div里把字體大小設為1.2em, 也就是12px。
然后你又把選擇器p的字體大小也設為1.2em,但如果p屬于content的子級的話,p的字體大小就不是12px,而是1.2em= 1.2 * 12px=14.4px,這是因為content的字體大小被設為1.2em,這個em值繼承其父級元素body的大小,也就是16px * 62.5% * 1.2=12px,而p作為其子級,em則繼承content的字體高,也就是12px,所以p的1.2em就不再是12px,而是14.4px。
(3)、重新計算那些被放大的字體的em數值,避免字體大小的重復聲明。
也就是避免1.2 * 1.2 = 1.44的現象,比如說你在#content中聲明了字體大小為1.2em,那么在聲明p的字體大小時就只能是1em,而不是1.2em,因為此em非彼em,它因繼承#content的字體高而變為了1em=12px。
但是12px漢字例外,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而是稍大一點。這個問題已經解決,只需在body選擇器中把62.5%換成63%就能正常顯示了,原因可能是IE處理漢字時,對于浮點的取值精確度有限,不知道有沒有其他的解釋和優化方法(關于更多細節的優化,可查看馬海祥博客《看看那些能提高效率卻容易被人忽略的CSS細節》的相關介紹)。
3、rem的特點
rem是CSS3新增的一個相對單位(root em,根em),這個單位引起了廣泛關注。
EM是相對于其父元素來設置字體大小的,這樣就會存在一個問題,進行任何元素設置,都有可能需要知道他父元素的大小,而Rem是相對于根元素<html>,這樣就意味著,我們只需要在根元素確定一個參考值。
目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。
對于不支持它的瀏覽器,應對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設定的字體大小。
下面就是一個例子:
p {font-size:14px; font-size:.875rem;}
CSS樣式表中px、em和rem單位的區別
通常情況下,我們區分px和em的差異就是說:px是絕對單位,不支持IE的縮放,em是相對單位,支持IE的縮放,其實,css單位em、px和rem的區別,詳細來說,有以下幾點:
1、PX:像素
PX是相對長度單位,它是相對于顯示器屏幕分辨率而言的。
優缺點:比較穩定和精確,但在瀏覽器中放大或縮放瀏覽頁面時會出現頁面混亂的情況。
2、EM
EM:是相對長度單位,EM是相對于父元素來設計字體大小的。如果當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。
優缺點:EM的值并不是固定的,它會繼承父級元素的字體大小。
PX和EM的之間的相互轉換:
任意瀏覽器的默認字體高都是16px。所有未經調整的瀏覽器都符合:1em=16px。那么,12px=0.75em,10px=0.625em。
為了使用方便,用em時,我們通常在CSS中的body選擇器中聲明font-size=62.5%(使em值變為:16px*62.5%=10px),之后,你只需要將你使用的px值除以10,即可得到em值,如:12px=1.2em,10px=1em。
3、REM
REM是CSS3新增的一個相對單位,REM是相對單位,是相對HTML根元素。
這個單位可謂集相對大小和絕對大小的優點于一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。
目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。
感謝各位的閱讀!關于css中px、em、rem有哪些區別就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。