1. 程式人生 > >px rem em的區別

px rem em的區別

px(pixel)畫素,相對長度單位。畫素px是相對於顯示器螢幕解析度而言的.

em是相對長度單位。相對於當前文字內的字型尺寸。如當前對行內文字的字型尺寸未被人設定,則相對於瀏覽器的預設字型尺寸任意瀏覽器的預設字型高都是16px,所有未經調整的瀏覽器都符合1em=16px

em特點:

1 em的值並不是固定的

2 em會繼承父級元素的字型大小

3 重新計算那些被放大的字型的em數值,避免字型大小的重複宣告

比如說,你在#content中聲明瞭字型大小為1.2rem,那麼在宣告p的字型大小時就只能是1em,而不是1.2em,因為此em非彼em,它因繼承#content的字型高而變為了1em=12px

rem特點:rem(root em),使用rem為元素設定字型大小時,仍然是相對大小,但相對的只是HTML根元素,這個單位集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例的調整所有字型,又可以避免字型大小逐層符合的連鎖反應。em和rem單位之間的區別是瀏覽器根據誰來轉化成px值,理解這種差異是決定何時使用哪個單元的關鍵rem如何轉換為畫素值當使用rem單位,他們轉化為畫素大小取決於頁根元素的字型大小,即html元素的字型大小。

例如,根元素的字型大小為16px,10rem將等同於160pxem單位

如何轉換為畫素值當使用em單位時,畫素值將是em值乘以使用em單位的元素的字型大小.

例如:如果一個div有18px字型大小,10em將等同於180px,em是相對於使用em單位的元素的字型大小.父元素的字型大小可以影響em值,但這種情況的發生,純粹是因為繼承。每個元素都會自動繼承其父元素的字型大小。繼承效果只能被明確的字型單位覆蓋,比如px、vw使用em單位的元素字型可能會收到其任何父元素的字型大小影響根html元素將繼承瀏覽器中設定的字型大小,除非顯式設定固定值去覆蓋,所以html元素的字型大小雖然是直接確定rem值,但字型大小可能首先來自瀏覽器設定,因此瀏覽器的字型大小設定可以影響每個使用rem單位以及每個通過em單位繼承的值最好不要去改變html元素的字型大小,因為它重寫繼承了使用者設定的瀏覽器字型大小,並且這剝奪了使用者自行調整以獲得最佳視覺效果的能力

em單位的主要目的應該是允許保持在一個特定的設計元素範圍內的可擴充套件性通常不使用em單位控制字型大小建立佈局的時候,往往要以畫素為單位更方便,但部署時應該使用rem單位佈局中的列寬通常應該是%,因此他們可以流暢適應無法預知大小的視區。然而單一列一般仍然應使用rem值來設定最大寬度