CSS中的em,rem,vm,vh詳解

一:`em` 和 `rem` 是兩種相對單位,它們常用于 CSS 中來設置尺寸、字體大小、間距等,主要用于更靈活和響應式的布局設計。它們與像素(`px`)不同,不是固定的,而是相對于其他元素的尺寸來計算的。

?1. `em` (相對于父元素的字體大小)

- `em` 是一個相對單位,表示相對于 **父元素** 的字體大小來計算。
- 例如,如果一個元素的字體大小為 `2em`,它的實際大小就是其父元素字體大小的兩倍。

示例:
css
div {font-size: 16px; ?/* 父元素的字體大小是 16px */
}p {font-size: 2em; ?/* p 的字體大小是父元素的 2 倍,即 32px */
}


在這個例子中,`div` 的字體大小是 `16px`,而 `p` 的字體大小是 `2em`,即 `32px`(相對于 `div`)。

注意:?`em` 會繼承父元素的尺寸,意味著如果在嵌套元素中使用,尺寸會累積,導致子元素的尺寸越來越大(或越來越小)。

例子:
css
div {font-size: 16px;
}section {font-size: 2em; ?/* 相對于 div,section 的字體大小是 32px */
}article {font-size: 0.5em; /* 相對于 section,article 的字體大小是 16px */
}

在這個例子中:
- `section` 的字體大小是 `32px`(2倍 `div` 的大小),
- `article` 的字體大小是 `16px`(0.5倍 `section` 的大小)。

?2. `rem` (相對于根元素的字體大小)

- `rem` 也是相對單位,但它與 `em` 不同,`rem` 是相對于 **根元素(`<html>`)的字體大小** 來計算的。根元素的字體大小通常默認是 16px(可以在 CSS 中更改)。
- `rem` 提供了更穩定的尺寸計算,因為它只依賴于根元素的字體大小,而不受父元素的影響。

?示例:
css
html {font-size: 16px; ?/* 根元素字體大小是 16px */
}p {font-size: 2rem; ?/* p 的字體大小是根元素字體大小的 2 倍,即 32px */
}


在這個例子中,`p` 的字體大小是根元素字體大小的 2 倍,也就是 `32px`,無論它的父元素的字體大小是多少。

與 `em` 的不同之處:
- `rem` 只依賴于根元素的字體大小,不受父元素影響,避免了 `em` 在嵌套元素中可能帶來的累積效果。

?3. 總結 `em` 和 `rem` 的區別:

| 單位 | 解釋 | 基礎參考 | 用途 |
| --- | ---- | -------- | ---- |
| `em` | 相對單位 | 父元素的字體大小 | 適用于需要根據父元素動態調整的場景。?
| `rem` | 相對單位 | 根元素(`<html>`)的字體大小 | 適用于確保一致的布局和尺寸,避免父元素影響。?

?4. `em` 和 `rem` 在響應式設計中的應用:

這兩種單位非常適合響應式設計,因為它們可以根據根元素的字體大小或父元素的大小動態調整。你可以通過調整根元素的字體大小,來控制整個頁面的尺寸變化。

?示例:
css
html {font-size: 16px; ?/* 默認字體大小 */
}@media (max-width: 600px) {html {font-size: 14px; ?/* 屏幕寬度小于 600px 時,根元素字體大小變為 14px */}
}


使用 `rem` 和 `em` 時,元素的尺寸會隨著根元素或父元素的字體大小變化,適應不同的屏幕尺寸。

---

總結來說:
- `em` 用于相對于父元素的尺寸,適合需要繼承父元素大小的場景;
- `rem` 用于相對于根元素的尺寸,適合需要全局一致性的響應式布局。

二:`vm` 和 `vh` 是 CSS 中的 **視口單位(Viewport Units)**,用于設置與視口大小相關的元素尺寸。這些單位使得頁面設計能夠根據用戶的瀏覽器窗口(視口)的大小進行自適應調整。

1. `vh` (Viewport Height)

- `vh` 是視口高度的 1%。
- 視口高度是瀏覽器窗口的可見區域的高度,不包括瀏覽器的工具欄、菜單欄等部分。

?示例:
css
div {height: 50vh; ?/* 該元素的高度是視口高度的 50% */
}

在這個例子中,`div` 元素的高度會根據瀏覽器窗口的高度變化。如果瀏覽器窗口的高度為 800px,那么 `div` 的高度就是 400px。

2. `vw` (Viewport Width)

- `vw` 是視口寬度的 1%。
- 視口寬度是瀏覽器窗口的可見區域的寬度,不包括任何滾動條或邊框。

示例:
css
div {width: 50vw; ?/* 該元素的寬度是視口寬度的 50% */
}

在這個例子中,`div` 元素的寬度會根據瀏覽器窗口的寬度變化。如果瀏覽器窗口的寬度是 1000px,那么 `div` 的寬度就是 500px。

?3. 總結 `vh` 和 `vw` 的使用:

| 單位 | 解釋 | 用途 |
| ---- | ---- | ---- |
| `vh` | 相對于視口高度的單位,1vh = 視口高度的 1% | 用于根據視口的高度設置元素的高度或其他尺寸。?
| `vw` | 相對于視口寬度的單位,1vw = 視口寬度的 1% | 用于根據視口的寬度設置元素的寬度或其他尺寸。?

?4. 示例場景:

- 響應式設計:使用 `vh` 和 `vw` 單位可以使元素的大小和布局適應不同設備和屏幕尺寸。
- 全屏背景或元素:如果你希望某個元素(如背景圖像)填滿整個視口,可以使用 `100vw` 或 `100vh` 來設置其寬度或高度。

?例子:
css
.fullscreen {width: 100vw; ?/* 寬度為視口寬度的 100% */height: 100vh; /* 高度為視口高度的 100% */
}


在這個例子中,`.fullscreen` 元素會占據整個瀏覽器窗口的寬度和高度。

?5. `vm`

- 注意:`vm` 不是一個有效的 CSS 單位。如果你看到這個單位,可能是某個拼寫錯誤,或者是特定框架中的自定義單位。標準 CSS 中沒有 `vm` 這個單位。

?小結:
- `vh` 和 `vw` 是視口相關的單位,分別表示視口的高度和寬度的百分比。
- `vh` 用于調整元素的高度,`vw` 用于調整元素的寬度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73969.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《非暴力溝通》第十二章 “重獲生活的熱情” 總結

《非暴力溝通》第十二章 “重獲生活的熱情” 的核心總結&#xff1a; 本章將非暴力溝通的核心理念延伸至生命意義的探索&#xff0c;提出通過覺察與滿足內心深處的需要&#xff0c;打破“義務性生存”的桎梏&#xff0c;讓生活回歸由衷的喜悅與創造。作者強調&#xff0c;當行動…

MySQL數據庫精研之旅第五期:CRUD的趣味探索(上)

專欄&#xff1a;MySQL數據庫成長記 個人主頁&#xff1a;手握風云 目錄 一、CRUD簡介 二、Create新增 2.1. 語法 2.2. 示例 三、Retrieve檢索 3.1. 語法 3.2. 示例 一、CRUD簡介 CURD是對數據庫中的記錄進行基本的增刪改查操作&#xff1a;Create(創建)、Retrieve(檢索…

【銀河麒麟系統常識】需求:安裝.NET SDK

前提 網絡狀態正常(非離線安裝)&#xff1b; 終端命令如下所示 根據不同系統的版本&#xff0c;自行選擇&#xff0c;逐行執行即可&#xff1b; # 基于 Ubuntu/Debian 的銀河麒麟系統 wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O…

行業智能體大爆發,分布式智能云有解

Manus的一夜爆紅&#xff0c;在全球范圍內引爆關于AI智能體的討論。 與過去一般的AI助手不同&#xff0c;智能體&#xff08;AI Agent&#xff09;并非只是被動響應&#xff0c;而是主動感知、決策并執行的應用。Gartner預測&#xff0c;到2028年&#xff0c;15%的日常工作決策…

工作記錄 2017-03-13

工作記錄 2017-03-13 序號 工作 相關人員 1 修改郵件上的問題。 開始處理操作日志部分。 測試了C#和MySql的連接。 更新RD服務器。 郝 更新的問題 1、 修改了CMS1500的打印&#xff0c;NDC的內容用了小的字體。 2、在Cliams List中可以查看Job的Notes。 3、Payment Po…

【七層分析框架:寒門貴子消亡的系統性絞殺】

七層分析框架&#xff1a;寒門貴子消亡的系統性絞殺 第一層&#xff1a;教育資源斷層 結論&#xff1a;基礎教育投入差已達量子級差距 機制&#xff1a; 北京海淀小學生均經費&#xff08;&#xffe5;47,800&#xff09; 云南山區&#xff08;&#xffe5;6,200&#xff09;…

Codeforces Round 1014 (Div. 2)(A-D)

題目鏈接&#xff1a;Dashboard - Codeforces Round 1014 (Div. 2) - Codeforces A. Kamilka and the Sheep 思路 最大值-最小值 代碼 void solve(){int n;cin>>n;vi a(n10);int mx0;int miinf;for(int i1;i<n;i){cin>>a[i];mimin(mi,a[i]);mxmax(mx,a[i])…

開源AI智能體項目OpenManus的部署

關于開源AI智能體項目OpenManus的部署與背景信息整理如下&#xff1a; 1. OpenManus 背景與核心亮點 開發背景&#xff1a;Manus作為一款閉源的通用型AI智能體產品&#xff0c;因內測邀請碼稀缺&#xff08;二手平臺炒至10萬元&#xff09;引發爭議。開源社區迅速反應&#xff…

使用jieba庫進行TF-IDF關鍵詞提取

文章目錄 一、什么是TF-IDF&#xff1f;二、為什么選擇jieba庫&#xff1f;三、代碼實現1.導入必要的庫2. 讀取文件3.將文件路徑和內容存儲到DataFrame4.加載自定義詞典和停用詞5.分詞并去除停用詞 四、總結 一、什么是TF-IDF&#xff1f; TF-IDF&#xff08;Term Frequency-I…

【學Rust寫CAD】20 平鋪模式結構體(spread.rs)

這個 Spread。rs文件定義了漸變超出定義區域時的擴展方式&#xff0c;通常用于處理漸變在邊界之外的行為。 源碼 //color/spread.rs #[derive(Debug, Clone, Copy)] pub struct Pad; // 空結構體&#xff0c;表示 Pad 模式#[derive(Debug, Clone, Copy)] pub struct Reflect…

[操作系統,學習記錄]3.進程(2)

1.fork(); 玩法一&#xff1a;通過返回值if&#xff0c;else去執行不同的代碼片段 玩法二&#xff1a;if&#xff0c;else然后調用execve函數去執行新的程序 2.進程終止&#xff1a; 退出碼&#xff0c;子進程通過exit/return返回&#xff0c;父進程wait/waitpid等待而得&am…

Masked Attention 在 LLM 訓練中的作用與原理

在大語言模型&#xff08;LLM&#xff09;訓練過程中&#xff0c;Masked Attention&#xff08;掩碼注意力&#xff09; 是一個關鍵機制&#xff0c;它決定了 模型如何在訓練時只利用過去的信息&#xff0c;而不會看到未來的 token。這篇文章將幫助你理解 Masked Attention 的作…

【自學筆記】PHP語言基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 1. PHP 簡介2. PHP 環境搭建3. 基本語法變量與常量數據類型運算符 4. 控制結構條件語句循環語句 5. 函數函數定義與調用作用域 6. 數組7. 字符串8. 表單處理9. 會話…

css選擇最后結尾的元素DOM

前言 選中最后一個元素&#xff0c;實際使用非常頻繁。 解決方案 使用 CSS 提供的選擇器&#xff0c;即可完成。 如下代碼示例&#xff0c;兩種選擇器均可實現。 <p>...</p>p:last-child{ background:#ff0000; }p:nth-last-child(1){background:#ff0000; }p&…

Axios 相關的面試題

在跟著視頻教程學習項目的時候使用了axios發送請求&#xff0c;但是只是跟著把代碼粘貼上去&#xff0c;一些語法規則根本不太清楚&#xff0c;但是根據之前的博客學習了fetch了之后&#xff0c;一看axios的介紹就明白了。所以就直接展示axios的面試題吧 本文主要內容&#xff…

瑞芯微RKRGA(librga)Buffer API 分析

一、Buffer API 簡介 在瑞芯微官方的 librga 庫的手冊中&#xff0c;有兩組配置 buffer 的API&#xff1a; importbuffer 方式&#xff1a; importbuffer_virtualaddr importbuffer_physicaladdr importbuffer_fd wrapbuffer 方式&#xff1a; wrapbuffer_virtualaddr wrapb…

C語言:多線程

多線程概述 定義 多線程是指在一個程序中可以同時運行多個不同的執行路徑&#xff08;線程&#xff09;&#xff0c;這些線程可以并發或并行執行。并發是指多個線程在宏觀上同時執行&#xff0c;但在微觀上可能是交替執行的&#xff1b;并行則是指多個線程真正地同時執行&…

Linux線程池實現

1.線程池實現 全部代碼&#xff1a;whb-helloworld/113 1.喚醒線程 一個是喚醒全部線程&#xff0c;一個是喚醒一個線程。 void WakeUpAllThread(){LockGuard lockguard(_mutex);if (_sleepernum)_cond.Broadcast();LOG(LogLevel::INFO) << "喚醒所有的休眠線程&q…

微信小程序逆向開發

一.wxapkg文件 如何查看微信小程序包文件&#xff1a; 回退一級 點擊進入這個目錄 這個就是我們小程序對應的文件 .wxapkg概述 .wxapkg是微信小程序的包文件格式&#xff0c;且其具有獨特的結構和加密方式。它不僅包含了小程序的源代碼&#xff0c;還包括了圖像和其他資源文…

多輸入多輸出 | Matlab實現CPO-LSTM冠豪豬算法優化長短期記憶神經網絡多輸入多輸出預測

多輸入多輸出 | Matlab實現CPO-LSTM冠豪豬算法優化長短期記憶神經網絡多輸入多輸出預測 目錄 多輸入多輸出 | Matlab實現CPO-LSTM冠豪豬算法優化長短期記憶神經網絡多輸入多輸出預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 Matlab實現CPO-LSTM冠豪豬算法優化長短期…