目錄
鑰匙要點
一些筆記,缺陷等。
REMS和SASS呢?
結論
經常詢問有關CSS
CSS中的EM和REM單位之間的區別是什麼? EM相對於其最接近的母體或當前元素的字體大小。這意味著,如果將元素的字體大小設置為1.2em,則將是父尺寸大小的1.2倍。另一方面,REM相對於根或HTML元素。因此,如果將元素的字體大小設置為1.2REM,則將是根元素字體大小的1.2倍。這使得與EM相比,REM更容易預測,更易於控制。

>如何將像素轉換為CSS中的EM單元?

>為什麼我要在CSS?

em單位中使用EM單位而不是像素提供了比像素的幾個優勢。它們是可擴展的,這意味著它們會根據用戶的默認瀏覽器設置或設備的設置進行調整。這使您的網站更容易被視覺障礙的用戶訪問,這些用戶可能需要增加字體尺寸。 EM單元還允許根據母元素的字體大小進行調整,因此可以進行更靈活和響應的設計。

>

>
>在CSS中使用EM單元是否有缺點?

>

,而EM單位具有許多優勢,它們也可能比像絕對單位一樣難以管理。因為EM單位是相對的,所以它們的實際大小可以根據上下文改變。這可能會使更難預測元素的大小,尤其是在帶有嵌套元素的複雜佈局中。

>我可以在CSS中的媒體查詢中使用EM單元嗎?實際上,在媒體查詢中使用EM單元可以提高設計的響應能力。由於EM單元是相對的,因此它們會根據用戶的默認瀏覽器設置或設備的設置進行調整。這意味著您的媒體查詢將適應用戶的設置,而不僅僅是視口尺寸。
首頁 web前端 css教學 CSS中EM單位的力量

CSS中EM單位的力量

Feb 28, 2025 am 09:52 AM

鑰匙要點

    在CSS中,對於應用EM的元素,EM單元等於計算的字體大小。當在未定義字體大小的子元素上聲明EM單位時,它們會從父母或另一個祖先元素中繼承其字體大小。
  • > EM單元與模塊化CSS技術(例如組件級造型或代碼的封裝部分)良好工作。它們可用於確保組件的元素相對於彼此的尺寸,並可以輕鬆調整大小。
  • > CSS中的REM單元始終從文檔根部元素上的基本字體大小設置繼承其值,而與計算的字體大小無關。因此,您可以使用REMS,但這意味著您必須使用該元素上的字體大小來控制頁面上的所有組件。
  • > EM單位具有與像素相比的幾個優點。它們是可擴展的,這意味著它們會根據用戶的默認瀏覽器設置或設備的設置進行調整。這使您的網站更容易被視覺障礙的用戶訪問,這些用戶可能需要增加字體尺寸。 EM單元還允許根據父元素的字體大小進行調整,可以進行更靈活和響應的設計。
使用CSS中的每個複雜功能,當您看到該功能的真正功能多麼強大時,您將始終擁有該轉折點。而且,信不信由你,我與EMS的個人轉折點是在我寫了一個充滿雙關語的介紹之後很久。 儘管到那時我已經很好地了解了EMS,但我確實開始看到當我閱讀Simurai在介質上的尺寸(Web)組件上的帖子時,它們的功能有多強大。 因此,我要在這篇文章中騎他的coattail。在這裡,您會發現對EM單元的快速介紹,然後進行現場演示,介紹了他所描述的技術。

CSS中的EMS是什麼? 在CSS中,EM單元等於用於應用EM的元素的計算字體大小。當在未定義字體大小的子元素上聲明EM單元時,它們將從父母或另一個祖先元素中繼承其字體大小,可能會一直回到文檔上的根元素。 查看以下CSS:

在這種情況下,對此元素或其子元素的1EM(假設沒有其他字體大小的定義)等於20px。因此,如果我們添加了一行:
<span><span>.example</span> {
</span><span>font-size: 20px;
</span><span>}</span>
登入後複製
這個邊界 - 拉迪烏斯的值為.5em 計算為10px(即20*.5)。相似地:
<span><span>.example</span> {
</span><span>font-size: 20px;
</span><span>border-radius: .5em;
</span><span>}</span>
登入後複製
2EM的填充值等於40px(20*2)。如前所述,這種類型的計算也適用於任何子元素 - 除非這些子元素中的任何一個具有明確定義的字體大小值,在這種情況下,EM值將根據該值計算。如果未在CSS中任何地方定義字體大小,則EM單元將等於瀏覽器的文檔默認字體大小,該字體通常為16px。 我認為這應該可以清楚地表明EMS的工作原理。現在,讓我們看一下如何使用該技術來製作易於解析的Web組件,如Simurai在原始媒介文章中所討論的那樣。我將通過提供演示來看到這一點,將他的想法進一步邁出。
<span><span>.example</span> {
</span><span>font-size: 20px;
</span><span>border-radius: .5em;
</span><span>padding: 2em;
</span><span>}</span>
登入後複製
何時在CSS

中使用EM EM單元與模塊化CSS技術(例如組件級的樣式或代碼的封裝部分)的效果很好。例如,它們可用於確保組件的元素(例如卡片的元素)相對於彼此的尺寸,並可以輕鬆地調整大小。 該技術基本上是這樣的:使用字體大小的屬性,如Simurai所指的,用作“特洛伊木馬”,為我們組件中的各個元素或模塊創建基本單元。由於上述EM單元是基於root定義的字體大小上元素上的字體大小來計算的,因此這使整個組件可以通過簡單地更改父元素上的字體大小來易於解析。 讓我們在Codepen演示中查看這一點:

>請參閱codepen上的sitepoint(@sitepoint)的EMS使用EMS的筆這個愚蠢的小模塊中有四個基本元素。沒什麼花哨的,只是一個說明這一技術的例子。移動演示頁面頂部的範圍滑塊以更改模塊的大小。您也可以在全屏上進行測試。將範圍滑塊掛在組件的根元素上的單個值上:字體大小值。 應該注意的是,使組件可使用此單個CSS屬性解析的組件不一定是為了使用戶可以這樣做。主要是為了維護模塊的開發人員可以快速進行調整,而不必擺弄組件的所有部分的不同值。 如上一節所述,隨著字體大小的變化,這會滴入該父元素上設置的所有EM值以及其所有子元素,從而使組件的所有部分都按比例靈活。 如果您檢查CSS,您會注意到以下內容:
  • 組件內部的所有內容均大大為EMS,除了外部邊框(我們希望始終保持在2px)和圖像,如果我們願意,我可以調整大小的圖像,但是我對它的尺寸對這種情況感到滿意。
  • >
  • >
  • >右上角的類似淚滴的東西是偽元素,它同樣從父母的基本字體大小上受益。
  • > CSS還包括兩個調整父上字體大小的媒體查詢。同樣,這顯示了此技術的有用性,因為您不必更改媒體查詢中的所有各種尺寸,而只需更改字體大小。
  • >

一些筆記,缺陷等。

> 從使用演示中的範圍滑塊可以看到,這種靈活的調整併不總是您想使用的。這可能有些限制。 您可能需要調整一些EM值才能使它們獲得自己喜歡的方式,並且,與演示中的父邊界一樣,您可能不希望調整大小的能力適用於所有元素。您可以通過簡單地避開要遺漏的元素來輕鬆克服這一點。 如Simurai的原始文章的討論中所述,您不必使用PX單元來設置ROOT字體大小。您也可以為此使用EMS,但請記住,這將以與父母相同的方式繼承,這可能來自文檔對字體大小的默認值。

REMS和SASS呢?

> CSS中的REM單元始終從文檔的根元素上的基本字體大小設置繼承其值,而與計算字體大小無關。在HTML中,根元素始終是HTML元素。因此,您可以使用REMS,但這意味著您必須使用該元素上的字體大小來控制頁面上的所有組件。它可以在某些項目上起作用,但是我認為,當將可重構性集中在孤立的組件上而不是整個文檔上時,這種技術最有效。 至於使用像Sass這樣的預處理器,我認為這是一個側點。最終,您的編譯樣式表將使用您在SASS代碼中使用的任何單元,並且繼承將以相同的方式工作。

結論

如前所述,Simurai值得使這項技術更廣為人知。當然,正如他所提到的那樣,這並不是什麼新鮮事物,多年來,許多經驗豐富的開發人員已經使用了基本概念,但是在Web組件或模塊的背景下,也許不是那麼多。 正如Simurai所說,我認為這是構建CSS框架或組件庫時使用的一種很好的方法,如果沒有其他的話,我認為該技術確實會使EM單元的功能強大。 當然,EM並不是唯一可用的CSS單元。查看我們對CSS尺寸單元的概述。

經常詢問有關CSS

中EM單位的問題(常見問題解答)

CSS中的EM和REM單位之間的區別是什麼? EM相對於其最接近的母體或當前元素的字體大小。這意味著,如果將元素的字體大小設置為1.2em,則將是父尺寸大小的1.2倍。另一方面,REM相對於根或HTML元素。因此,如果將元素的字體大小設置為1.2REM,則將是根元素字體大小的1.2倍。這使得與EM相比,REM更容易預測,更易於控制。

>如何將像素轉換為CSS中的EM單元?

>將像素轉換為EM單元,您需要知道文檔的基本字體大小。大多數瀏覽器中默認的鹼基大小為16px。因此,如果要將像素值轉換為EM,則將像素值除以基本字體大小。例如,如果要將18px轉換為EM,則將執行18/16 = 1.125EM。

>為什麼我要在CSS?

em單位中使用EM單位而不是像素提供了比像素的幾個優勢。它們是可擴展的,這意味著它們會根據用戶的默認瀏覽器設置或設備的設置進行調整。這使您的網站更容易被視覺障礙的用戶訪問,這些用戶可能需要增加字體尺寸。 EM單元還允許根據母元素的字體大小進行調整,因此可以進行更靈活和響應的設計。

>

>我可以將EM單元用於CSS中的字體大小以外的屬性以外的其他屬性嗎? 是的,您可以在CSS中使用EM單位來接受數字值的任何屬性,而不僅僅是Font-font-font-font-size。這包括寬度,高度,填充,邊緣和線路高度等屬性。使用EM單元作為這些屬性可以幫助維持設計中的比例關係。

>如何通過在HTML元素上設置font-size屬性來設置CSS中的EM單元的基本字體大小。例如,如果您希望基本字體大小為18px,則將寫:html {font-size:18px; }。然後,您的CS中的所有EM單元都將相對於此基本字體大小。

>

>如果我在CSS中使用EM單位嵌套元素?

,如果您嵌套具有EM單元的元素,則孩子的大小將與父元素的大小相對。這可能會導致複合效果,其中兒童元素的大小比預期的大或更小。為了避免這種情況,您可以使用REM單元,這些單元始終相對於根部元素的大小。

>

>在CSS中使用EM單元是否有缺點?

>

,而EM單位具有許多優勢,它們也可能比像絕對單位一樣難以管理。因為EM單位是相對的,所以它們的實際大小可以根據上下文改變。這可能會使更難預測元素的大小,尤其是在帶有嵌套元素的複雜佈局中。

如何覆蓋CSS中的EM單元中設置的元素的大小?

>您可以通過設置更特定的選擇者中的em單元中設置的元素設置的大小來覆蓋元素的大小。 CSS遵循特異性層次結構,其中更特定的選擇器覆蓋了較少的特定性。例如,ID選擇器將覆蓋類選擇器,並且類選擇器將覆蓋類型的選擇器。

>

>我可以在CSS中的媒體查詢中使用EM單元嗎?實際上,在媒體查詢中使用EM單元可以提高設計的響應能力。由於EM單元是相對的,因此它們會根據用戶的默認瀏覽器設置或設備的設置進行調整。這意味著您的媒體查詢將適應用戶的設置,而不僅僅是視口尺寸。

>

>如何計算CSS中具有EM單元的嵌套元素的大小?

>

如何計算具有EM單元的嵌套元素大小,您將父元素的大小乘以子元素的大小。例如,如果父元素的大小為1.5em,並且子元素的大小為2em,則子元素的實際大小為1.5 * * 2 = 3em。這是因為子元素的大小相對於父元素的大小。

>

以上是CSS中EM單位的力量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

快速吞噬緩存破壞 快速吞噬緩存破壞 Apr 18, 2025 am 11:23 AM

您應該肯定會在CSS和JavaScript(以及圖像和字體以及其他內容)等資產上設置遙遠的高速緩存標頭。告訴瀏覽器

See all articles