溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

css中px、em、rem有哪些區(qū)別

發(fā)布時間:2020-11-10 10:25:19 來源:億速云 閱讀:171 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關css中px、em、rem有哪些區(qū)別的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

區(qū)別:px表示像素,是相對長度單位,是相對于顯示器屏幕分辨率來設置字體大小的,不支持IE的縮放;em是相對長度單位,是相對于其父元素來設置字體大小的,支持IE的縮放;rem是相對長度單位,是相對HTML根元素來設置字體大小的。

PX,EM和REM的定義

px表示像素,不會因為其他元素的尺寸變化而變化。

像素的大小是會“變”的,也稱為“相對長度”,越高位的像素,其擁有的色板也就越豐富,越能表達顏色的真實感。

em表示相對于父元素的字體大小,em是相對單位,沒有一個固定的度量值,而是由其他元素尺寸來決定的相對值。

em是相對長度單位,相對于當前對象內文本的字體尺寸,如當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸,國外使用比較多。

任意瀏覽器的默認字體高都是16px,所有未經(jīng)調整的瀏覽器都符合:1em=16px。那么12px=0.75em;10px=0.625em;為了簡化font-size的換算,需要在css中的body選擇器中聲明Font-size=62.5%,這就使em值變?yōu)椋?6px*62.5%=10px;這樣12px=1.2em;10px=1em,也就是說只需要將你的原來的px數(shù)值除以10,然后換上em作為單位就行了。

REM是相對單位,是相對HTML根元素。這個單位可謂集相對大小和絕對大小的優(yōu)點于一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。

CSS樣式表中px、em和rem單位的特點

一般情況下,我們平時都是用px來定義字體,所以無法用瀏覽器字體放大的功能,而國外大多數(shù)網(wǎng)站都可以在IE下使用,這主要是因為:

(1)、IE無法調整那些使用px作為單位的字體大??;

(2)、國外的大部分網(wǎng)站能夠調整的原因在于其使用了em作為字體單位;

(3)、Firefox能夠調整px和em,但是96%以上的中國網(wǎng)民使用IE瀏覽器(或內核)。

那么,css單位px、em和rem的特點分別是什么呢?

1、px的特點

PX實際上就是像素,用PX設置字體大小時,比較穩(wěn)定和精確。

但是這種方法存在一個問題,當用戶在瀏覽器中瀏覽我們制作的Web頁面時,如果改變了瀏覽器的縮放,這時會使用我們的Web頁面布局被打破,這樣對于那些關心自己網(wǎng)站可用性的用戶來說,就是一個大問題了。

因此,這時就提出了使用“em”來定義Web頁面的字體。

2、em的特點

EM就是根據(jù)基準來縮放字體的大小,EM實質是一個相對值,而非具體的數(shù)值,這種技術需要一個參考點,一般都是以<body>的“font-size”為基準,如WordPress官方主題Twenntytwelve的基準就是14px=1em。

通常來說,em有如下特點:

(1)、em的值并不是固定的;

(2)、em會繼承父級元素的字體大小。

所以,我們在寫CSS的時候,需要注意以下3點:

(1)、body選擇器中聲明Font-size=62.5%;

(2)、將你的原來的px數(shù)值除以10,然后換上em作為單位;

如果只需要以上兩步就能解決問題的話,可能就沒人用px了。經(jīng)過以上兩步,你會發(fā)現(xiàn)你的網(wǎng)站字體大得出乎想象,因為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數(shù)值,避免字體大小的重復聲明。

也就是避免1.2 * 1.2 = 1.44的現(xiàn)象,比如說你在#content中聲明了字體大小為1.2em,那么在聲明p的字體大小時就只能是1em,而不是1.2em,因為此em非彼em,它因繼承#content的字體高而變?yōu)榱?em=12px。

但是12px漢字例外,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而是稍大一點。這個問題已經(jīng)解決,只需在body選擇器中把62.5%換成63%就能正常顯示了,原因可能是IE處理漢字時,對于浮點的取值精確度有限,不知道有沒有其他的解釋和優(yōu)化方法(關于更多細節(jié)的優(yōu)化,可查看馬海祥博客《看看那些能提高效率卻容易被人忽略的CSS細節(jié)》的相關介紹)。

3、rem的特點

rem是CSS3新增的一個相對單位(root em,根em),這個單位引起了廣泛關注。

EM是相對于其父元素來設置字體大小的,這樣就會存在一個問題,進行任何元素設置,都有可能需要知道他父元素的大小,而Rem是相對于根元素<html>,這樣就意味著,我們只需要在根元素確定一個參考值。

目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。

對于不支持它的瀏覽器,應對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設定的字體大小。

下面就是一個例子:

p {font-size:14px; font-size:.875rem;}

CSS樣式表中px、em和rem單位的區(qū)別

通常情況下,我們區(qū)分px和em的差異就是說:px是絕對單位,不支持IE的縮放,em是相對單位,支持IE的縮放,其實,css單位em、px和rem的區(qū)別,詳細來說,有以下幾點:

1、PX:像素

PX是相對長度單位,它是相對于顯示器屏幕分辨率而言的。

優(yōu)缺點:比較穩(wěn)定和精確,但在瀏覽器中放大或縮放瀏覽頁面時會出現(xiàn)頁面混亂的情況。

2、EM

EM:是相對長度單位,EM是相對于父元素來設計字體大小的。如果當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。

優(yōu)缺點:EM的值并不是固定的,它會繼承父級元素的字體大小。

PX和EM的之間的相互轉換:

css中px、em、rem有哪些區(qū)別

任意瀏覽器的默認字體高都是16px。所有未經(jīng)調整的瀏覽器都符合:1em=16px。那么,12px=0.75em,10px=0.625em。

為了使用方便,用em時,我們通常在CSS中的body選擇器中聲明font-size=62.5%(使em值變?yōu)椋?6px*62.5%=10px),之后,你只需要將你使用的px值除以10,即可得到em值,如:12px=1.2em,10px=1em。

3、REM

REM是CSS3新增的一個相對單位,REM是相對單位,是相對HTML根元素。

這個單位可謂集相對大小和絕對大小的優(yōu)點于一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。

目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。

感謝各位的閱讀!關于css中px、em、rem有哪些區(qū)別就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

css
AI