搜尋
首頁web前端css教學css中em是相對於父元素還是目前元素的大小? (程式碼範例)

這篇文章帶給大家的內容是關於css中em是相對於父元素還是當前元素的大小? (程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

em是CSS中一個比較常用的相對單位,因此有必要注意一些坑點。

1em等於目前元素的字體大小,除非你在設定font-size

有很多文章說1em是等於父元素的字體大小!這種說法其實是不準確的。看以下例子:

nbsp;html>


    <meta>
    <meta>
    <meta>
    <title>Document</title>
    <style>
        body {
            font-size: 16px;
        }
        div {
            font-size: 32px;
            padding-bottom: 2em;
            background-color: aquamarine;
        }
    </style>



    <div></div>

會被padding-bottom撐開,而padding-bottom的高度是64px,而不是32px!這證明了1em等於目前元素的字體大小(只有一個例外,下面會講)。 字體大小和長度有什麼關係呢?字體不是一個方塊嗎?實際上,字體大小被定義為M的寬度。

為什麼有人誤認為1em等於父元素的字體大小呢?這是因為如果在設定font-size的時候使用em單位,此時font-size還是預設值inherit,因此此時1em還等於父元素的字體大小。這是在設定font-size時才有的特例!這個特例很好理解,畢竟我正在設定當前元素的字體大小呢!怎麼能用此刻正在設定的字體大小作為單位呢!這不是悖論嗎!

舉個例子,如果這個悖論真的發生了,就會出現以下情況:水果店老闆對你說:“你想要多少斤橘子,我給你裝起來”,而你卻對老闆說: 「我要的數量是我最終要的數量的2倍」(類比於設定font-size: 2em)。這時候水果店老闆估計就要崩潰了,他到底要裝多少橘子給你呢?
為了避免這種事情發生,在你指定數量的時候如果使用相對單位,那麼這個單位必定不能相對於你此刻所指定的數量。你可以對老闆這樣說:「我要的數量是上一個顧客買的2倍」(類比於設定font-size: 2em)。當你買完橘子以後,又可以對老闆這樣說:「我還要一些蘋果,數量是剛才買的橘子的2倍」(類比於設定padding-bottom: 2em)。

除了這個特例以外,當設定其他css屬性的時候,1em就等於目前元素的字體大小。

在上面的例子中,設定font-size的時候使用em,就能證明這個特例的存在:

nbsp;html>


    <meta>
    <meta>
    <meta>
    <title>Document</title>
    <style>
        body {
            font-size: 16px;
        }
        div {
            font-size: 2em;  /* 仅仅这一行改变了! */
            padding-bottom: 2em;
            background-color: aquamarine;
        }
    </style>


    <div></div>

最終高度依然是64px,因為在設定font-size的時候,1em == 16px;在設定padding-bottom的時候,1em 就等於32px 了。

如果在根元素上的font-size使用em會怎麼樣呢?它沒有父元素了啊!沒關係,對於inherited properties(其中就包含font-size),在根元素上的預設值為initial,對於大部分瀏覽器,font-size的initial值就是16px。因此在設定根元素上的font-size時,它的值還是16px,1em也等於16px

nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>Document</title>
    <style>
        html {
            /* 2*16px=32px */
            font-size: 2em;
        }
        div {
            /* 2*32px=64px */
            font-size: 2em;
            /* 2*64px=128px */
            padding-bottom: 2em;
            background-color: aquamarine;
        }
    </style>



    <div></div>

以上是css中em是相對於父元素還是目前元素的大小? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:segmentfault思否。如有侵權,請聯絡admin@php.cn刪除
滑動頁腳滑動頁腳Apr 09, 2025 am 11:50 AM

剛剛推出了一個引人入勝的新網站。標語:Big Tech正在看著您。我們正在看大型技術。上升的出色工作。這

喜歡的頁面喜歡的頁面Apr 09, 2025 am 11:47 AM

前幾天,我發布了有關在JavaScript中解析RSS提要的內容。我還發布了有關RSS設置的信息,討論了Feedbin的核心。

重新創建Codepen Gutenberg嵌入塊以進行理智。重新創建Codepen Gutenberg嵌入塊以進行理智。Apr 09, 2025 am 11:43 AM

了解如何通過Chris Coyier實施WordPress的Gutenberg編輯器來創建一個自定義Codepen塊,並為Sanity Studio提供預覽。

如何使用CSS製作線路圖如何使用CSS製作線路圖Apr 09, 2025 am 11:36 AM

線,條和餅圖是儀表板的麵包和黃油,是任何數據可視化工具包的基本組成部分。當然,您可以使用SVG

編程SASS創建可訪問的顏色組合編程SASS創建可訪問的顏色組合Apr 09, 2025 am 11:30 AM

我們一直在尋求使網絡更容易訪問。顏色對比只是數學,因此Sass可以幫助涵蓋設計師可能錯過的邊緣案例。

我們如何創建一個在SVG中生成格子呢模式的靜態站點我們如何創建一個在SVG中生成格子呢模式的靜態站點Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

PHP模板的後續行動PHP模板的後續行動Apr 09, 2025 am 11:14 AM

不久前,我僅以PHP(基本上是Heredoc語法)發布了有關PHP模板的信息。我從字面上使用該技術來進行某種超級基礎

使用Bootstrap組件創建模態圖像庫使用Bootstrap組件創建模態圖像庫Apr 09, 2025 am 11:10 AM

您是否曾經在網頁上單擊圖像,該圖像通過導航打開圖像的較大版本以查看其他照片?

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。