首頁 >web前端 >html教學 >css中px與em以及rem的區別總結

css中px與em以及rem的區別總結

迷茫
迷茫原創
2017-03-25 09:34:201436瀏覽

前言

em 和rem 都是靈活可擴展的單位,由瀏覽器轉換為像素值,取決於設計中的字體大小,如果使用值1em 或1rem ,它可以被瀏覽器轉換為從16px 到160px 或其他任意值。瀏覽器使用 1px ,那麼 1px 總是顯示為完全 1px。

em 和rem 的相同點

使用em 和rem 單位可以讓我們的設計更加靈活,能夠控制元素整體放大縮小,而不是固定大小

em 和rem 區別

##差異是瀏覽器根據誰來轉換成px 值

rem 單位如何轉換為像素值

當使用rem 單位,他們轉換成像素大小取決於頁根元素的字體大小,也就是html 元素的字體大小。 根元素字體大小乘以你 rem 值。

例如,根元素的字體大小 16px,10rem 將等同於 160px,即 10 x 16 = 160。

em 單位如何轉換為像素值

當使用em單位時,像素值將是 em 值乘以使用 em 單位的元素的字體大小。例如,如果一個 p 有 18px 字體大小,10em 將等同於 180px,即 10 × 18 = 180。

重點理解:

有一個比較普遍的誤解,認為 em 單位是相對於父元素的字體大小。 事實上,根據W3標準 ,它們是相對於使用em單位的元素的字體大小。父元素的字體大小可以影響 em 值,但這種情況的發生,純粹是因為繼承。 讓我們看看為什麼以及如何運作。

你需要知道的:

根 html 元素將繼承瀏覽器中設定的字體大小,除非明確設定固定值去覆蓋。所以 html 元素的字體大小雖然是直接確定 rem 值,但字體大小可能首先來自瀏覽器設定。因此瀏覽器的字體大小設定可以影響每個使用 rem 單元以及每個透過 em 單位繼承的值。

總結與rem 差異em

上述所有歸結如下:

  1. rem 單位翻譯為像素值是由html 元素的字體大小決定的。 此字體大小會被瀏覽器中字體大小的設定影響,除非明確重寫特定單位。

  2. em 單位轉為像素值,取決於他們使用的字體大小。 此字體大小受從父元素繼承過來的字體大小,除非明確重寫與一個具體單位。

為什麼使用 rem 單位:

Rem 單位提供最偉大的力量並不僅僅是他們提供一致尺寸而不是繼承。 相反,它給我們的一個途經去獲取用戶的偏好來影響網站中每一處使用rem的元素大小,不再是使用固定的 px 單位。

為此,使用 rem 單位的主要目的應該是確保無論使用者如何設定自己的瀏覽器,我們的佈局都能調整到適當大小。

為什麼使用 em 單位

em 單位取決於一個font-size值而不是 html 元素的字體大小。

為此,em 單位的主要目的應該是允許保持在一個特定的設計元素範圍內的可擴展性。

例如,您可能使用em 值設定導覽選單項目的padding、 margin,line-height等值。帶有0.9rem 字體大小的選單

透過這種方式,如果您變更選單的字體大小選單項目周圍的間距將在剩餘的空間中按比例縮放。

總結

  • rem 和 em 單位是由瀏覽器基於你的設計中的字體大小計算得到的像素值。

  • em 單位是基於使用他們的元素的字體大小。

  • rem 單位是基於 html 元素的字體大小。

  • em 單位可能受任何繼承的父元素字體大小影響

  • #rem 單位可以從瀏覽器字體設定中繼承字體大小。

  • 使用 em 單位應根據組件的字體大小而不是根元素的字體大小。

  • 在不需要使用em單位,並且需要根據瀏覽器的字體大小設定縮放的情況下使用rem。

  • 使用rem單位,除非你確定你需要 em 單位,包括對字體大小。

  • 媒體查詢中使用 rem 單位

  • #不要在多列佈局中使用 em 或 rem -改用 %。

  • 不要使用 em 或 rem,如果縮放會不可避免地導致要打破佈局元素。

  • #

以上是css中px與em以及rem的區別總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn