前端中rem,vh,vw

1.?rem(Root EM)

參照對象

  • 基準:相對于?根元素(<html>)的?font-size?計算。

  • 默認情況下,瀏覽器的根?font-size?為?16px(即?1rem = 16px),但可通過 CSS 修改:

    html {font-size: 20px; /* 此時 1rem = 20px */
    }

不同分辨率下的表現

  • 變化規則

    • rem?的值?只取決于根元素的?font-size,與視口大小無關。

    • 若根?font-size?固定(如?20px),1rem?永遠等于?20px

    • 若根?font-size?動態設置(如通過媒體查詢或 JS 根據視口調整),rem?會按比例變化。

  • 常見用法

    /* 動態調整根 font-size(適配移動端) */
    html {font-size: calc(100vw / 375 * 16); /* 基于設計稿寬度 375px */
    }

?

2.?vh(Viewport Height)

參照對象

  • 基準:相對于?視口(Viewport)高度的 1%

    • 1vh = 1% 的視口高度(如視口高度為?1000px,則?1vh = 10px)。

不同分辨率下的表現

  • 變化規則

    • vh?的值?隨視口高度變化

    • 在移動端,瀏覽器地址欄的顯示/隱藏會動態改變視口高度,導致?vh?值波動(可用?dvh?解決)。

  • 常見用法

    .full-screen {height: 100vh; /* 始終占滿視口高度 */
    }

?

3.?vw(Viewport Width)

參照對象

  • 基準:相對于?視口(Viewport)寬度的 1%

    • 1vw = 1% 的視口寬度(如視口寬度為?1200px,則?1vw = 12px)。

不同分辨率下的表現

  • 變化規則

    • vw?的值?隨視口寬度變化

    • 適用于響應式布局(如替代百分比,避免嵌套元素計算問題)。

  • 常見用法

    .responsive-box {width: 50vw; /* 始終占視口寬度的一半 */
    }

?

?

4. 對比總結

單位參照對象是否隨視口變化典型應用場景
rem根元素的?font-size否(除非動態修改根字號)字體大小、間距、整體縮放
vh視口高度全屏布局、高度自適應
vw視口寬度響應式寬度、柵格系統

5. 特殊注意事項

移動端?vh?的問題

  • 問題:在移動端瀏覽器中,100vh?可能包含地址欄高度,導致內容被遮擋。

  • 解決方案

    • 使用 CSS 新單位?dvh(Dynamic Viewport Height,動態視口高度):

      .mobile-section {height: 100dvh; /* 自動排除地址欄高度 */
      }

    • 或通過 JavaScript 動態計算:

      document.documentElement.style.setProperty('--vh', `${window.innerHeight}px`);
      .mobile-section {height: calc(var(--vh, 1vh) * 100);
      }

vw?的替代方案

  • 若需避免?vw?計算復雜性,可使用 CSS 容器查詢(cqw)或 Flex/Grid 布局。

?

6. 不同分辨率下的計算示例

視口尺寸1rem(根?font-size: 16px1vh(視口高度?900px1vw(視口寬度?1200px
桌面端16px9px12px
移動端豎屏16px6.5px(含地址欄)3.75px(寬度?375px
移動端橫屏16px3.75px(高度?375px6.5px(寬度?650px

?

7. 如何選擇單位?

  • 全局縮放:用?rem(結合媒體查詢動態調整根?font-size)。

  • 視口適配:用?vw/vh(或?dvh?解決移動端問題)。

  • 精確控制:結合?calc()?使用(如?calc(1rem + 1vw))。

通過合理選擇單位,可以輕松實現跨設備的響應式布局。

?

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

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

相關文章

詳解 MySQL 常見的存儲引擎及它們之間的區別

MySQL 支持多種存儲引擎&#xff0c;每種引擎針對不同的應用場景提供了特定的特性和優化。下面是幾種常見的存儲引擎以及它們之間的主要區別&#xff1a; 常見存儲引擎 1. InnoDB&#xff08;重點&#xff09; 事務支持&#xff1a; 完全支持 ACID 事務&#xff0c;確保數據一…

html+css+js 實現一個貪吃蛇小游戲

目錄 游戲簡介 游戲功能與特點 如何玩轉貪吃蛇 游戲設計與實現 HTML結構 JavaScript核心實現 代碼結構&#xff1a; 效果 關于“其他游戲” 游戲簡介 貪吃蛇是一款經典的單人小游戲&#xff0c;玩家通過控制蛇的移動&#xff0c;吃掉食物來增加長度&#xff0c;避免撞…

GLSL(OpenGL 著色器語言)基礎語法

GLSL&#xff08;OpenGL 著色器語言&#xff09;基礎語法 GLSL&#xff08;OpenGL Shading Language&#xff09;是 OpenGL 計算著色器的語言&#xff0c;語法類似于 C 語言&#xff0c;但提供了針對 GPU 的特殊功能&#xff0c;如向量運算和矩陣運算。 著色器的開頭總是要聲明…

ngx_http_core_merge_srv_conf

定義在 src\http\ngx_http_core_module.c static char * ngx_http_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) {ngx_http_core_srv_conf_t *prev parent;ngx_http_core_srv_conf_t *conf child;ngx_str_t name;ngx_http_server_name_t…

uni-app:firstUI框架的選擇器Select改造,添加一個搜索的插槽

<fui-select :show"showSiteType" :options"siteTypeList" textKey"dict_label" title"請選擇站點類型" confirm"chooseSiteType" close"onCloseSiteType"><template v-slot:search><view><…

Debian/Ubuntu的networking的`/etc/network/interfaces`配置文件,如何配置route路由

Debian/Ubuntu的networking的/etc/network/interfaces配置文件,如何配置route路由 在 Debian/Ubuntu 系統中&#xff0c;通過 /etc/network/interfaces 配置文件配置路由&#xff08;靜態路由或默認路由&#xff09;可以通過以下方式實現。以下是詳細配置方法及示例&#xff1…

天梯賽 L2-024 部落

一個并查集題目&#xff0c;難點就在于統計總人數&#xff0c;使用map即可&#xff0c;還有需要注意的是編號不一定是小于N的&#xff0c;小于10000的&#xff0c;需要注意。 #include<bits/stdc.h> using namespace std; const int N 10010; int fa[N]; int find(int …

uniapp 微信小程序 使用ucharts

文章目錄 前言一、組件功能概述二、代碼結構分析2.1 模板結構 總結 前言 本文介紹一個基于 Vue 框架的小程序圖表組件開發方案。該組件通過 uCharts 庫實現折線圖的繪制&#xff0c;并支持滾動、縮放、觸摸提示等交互功能。文章將從代碼結構、核心方法、交互實現和樣式設計等方…

Axure項目實戰:智慧運輸平臺后臺管理端-承運商管理(中繼器篩選)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝! 課程主題:智慧運輸平臺后臺管理端 主要內容:承運商管理 應用場景:條件篩選、增刪改查操作、臺賬制作 案例展示: 正文內容: 承運商管理模塊主要解決平臺對承運商的管理,包括新增承運商作,審核承運商申請,修…

[論文筆記] Deepseek技術報告解讀: MLAMTP

1. RMSNorm 歸一化層 class RMSNorm(nn.Module):def __init__(self, dim: int, eps: float = 1e-8):super().__init__()self.eps = epsself.weight = nn.Parameter(torch.ones(dim)) # 可學習的縮放參數def _norm(self, x: torch.Tensor):return x * torch.rsqrt(x.pow(2).me…

八款內網電腦監控軟件:探尋適配企業需求的數字化監管方案組合

數字化辦公的時代背景下&#xff0c;企業管理面臨著前所未有的挑戰。如何實現對員工辦公行為的高效管理&#xff0c;確保網絡資源的合理利用&#xff0c;成為眾多企業決策者和高級管理人員亟待解決的重要問題。內網電腦監控軟件作為一種有效的管理工具&#xff0c;應運而生。本…

Flutter求助貼

報錯信息&#xff1a;The Dart VM Service was not discovered after 30 seconds. This is taking much longer than expected... 基本情況&#xff1a; 硬件&#xff1a;mac(15.3.1)&#xff0c;iPad(iOS 16.6),iPhone 16 pro(iOS 18.4) 項目環境 flutter&#xff1a;3.16…

React(九)React Hooks

初識Hook 我們到底為什么需要hook那? 函數組件類組件存在問題 函數組件存在的問題&#xff1a; import React, { PureComponent } from reactfunction HelloWorld2(props) {let message"Hello world"// 函數式組件存在的缺陷&#xff1a;// 1.修改message之后&a…

數據清洗的具體內容

&#xff08;一&#xff09;ETL介紹 “ETL&#xff0c;是英文Extract-Transform-Load的縮寫&#xff0c;用來描述將數據從來源端經過抽取&#xff08;Extract&#xff09;、轉換&#xff08;Transform&#xff09;、加載&#xff08;Load&#xff09;至目的端的過程。ETL一詞較…

【動手學深度學習】#7 現代卷積神經網絡

主要參考學習資料&#xff1a; 《動手學深度學習》阿斯頓張 等 著 【動手學深度學習 PyTorch版】嗶哩嗶哩跟李牧學AI 概述 硬件性能和大數據的發展為深度卷積神經網絡&#xff08;AlexNet&#xff09;的實現提供了條件。VGG首次將塊的思想用于搭建網絡。NiN將多層感知機應用在…

Jenkins + CICD流程一鍵自動部署Vue前端項目(保姆級)

git倉庫地址&#xff1a;參考以下代碼完成,或者采用自己的代碼。 南澤/cicd-test 拉取項目代碼到本地 使用云服務器或虛擬機采用docker部署jenkins 安裝docker過程省略 采用docker部署jenkins&#xff0c;注意這里的命令&#xff0c;一定要映射docker路徑&#xff0c;否則無…

使用 libevent 處理 TCP 粘包問題(基于 Content-Length 或雙 \r\n)

在基于 libevent 的 TCP 服務器開發中,處理消息邊界是常見需求。以下是兩種主流分包方案的完整實現: 一、基于 Content-Length 的分包方案 1.1 數據結構設計 typedef struct {struct bufferevent *bev;int content_length; // 當前消息的預期長度int received_bytes; //…

酶動力學預測工具CataPro安裝教程

簡介&#xff1a;預測酶動力學參數是酶發現和酶工程中的一項重要任務。在此&#xff0c;研究人員基于蛋白質語言模型、小分子語言模型和分子指紋&#xff0c;提出了一種名為 CataPro 的新酶動力學參數預測算法。該研究從 BRENDA 和 SABIO-RK 數據庫中收集了最新的轉化率&#x…

項目實戰:基于Spring WebFlux與LangChain4j實現大語言模型流式輸出

一、背景 在大語言模型&#xff08;LLM&#xff09;應用場景中&#xff0c;GPT-4等模型的響應生成往往需要數秒至數十秒的等待時間。傳統同步請求會導致用戶面對空白頁面等待&#xff0c;體驗較差。本文通過Spring WebFlux響應式編程與SSE服務器推送技術&#xff0c;實現類似打…

Go語言入門經典:數組與切片詳解

Go語言入門經典&#xff1a;數組與切片詳解 數組和切片是Go語言中兩種重要的數據結構。數組是一種固定長度的集合&#xff0c;而切片則是一種靈活的動態集合。本章將詳細講解數組和切片的定義、初始化、訪問元素、動態操作等內容&#xff0c;幫助讀者全面掌握這兩種數據結構。…