news 2026/6/15 12:20:10

CSS相对视口单位:svh, lvh, dvh的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CSS相对视口单位:svh, lvh, dvh的区别

CSS 中的svh(Small Viewport Height)lvh(Large Viewport Height)dvh(Dynamic Viewport Height)是三种新型视口相对单位,旨在解决传统vh单位在移动端因浏览器 UI 动态变化(如地址栏、工具栏的显示/隐藏)导致的布局问题。以下是它们的核心区别、特性及适用场景的详细分析:

一、核心定义与计算逻辑

  1. svh(Small Viewport Height)

    • 定义:表示浏览器 UI 完全展开时的最小视口高度(如地址栏、工具栏可见时的视口高度)。
    • 计算逻辑:取设备初始视口高度和当前视口高度的最小值
    • 特点
      • 保守性:始终基于最小可用视口高度,确保内容不会被浏览器 UI 遮挡。
      • 稳定性:值不随浏览器 UI 状态变化(如键盘弹出、地址栏隐藏)而改变。
    • 示例
      .header{height:100svh;}/* 高度始终等于最小视口高度 */
  2. lvh(Large Viewport Height)

    • 定义:表示浏览器 UI 完全隐藏时的最大视口高度(如地址栏、工具栏不可见时的视口高度)。
    • 计算逻辑:取设备初始视口高度和当前视口高度的最大值
    • 特点
      • 扩展性:始终基于最大可用视口高度,适合需要铺满屏幕的场景。
      • 稳定性:值不随浏览器 UI 状态变化而改变(但可能因设备旋转等物理变化调整)。
    • 示例
      .fullscreen-section{height:100lvh;}/* 高度始终等于最大视口高度 */
  3. dvh(Dynamic Viewport Height)

    • 定义:表示当前动态视口高度,随浏览器 UI 的显示/隐藏实时变化。
    • 计算逻辑:根据浏览器 UI 的当前状态(如地址栏是否展开)动态计算视口高度。
    • 特点
      • 动态性:值会随浏览器 UI 状态变化(如键盘弹出、地址栏隐藏)而实时调整。
      • 灵活性:适合需要自适应视口变化的布局,但可能因频繁变化导致性能开销。
    • 示例
      .main-content{height:100dvh;}/* 高度随视口动态变化 */

二、核心区别对比

单位全称计算逻辑稳定性适用场景
svhSmall Viewport Height初始视口高度与当前高度的最小值需要确保内容不被浏览器 UI 遮挡(如固定导航栏、底部按钮)。
lvhLarge Viewport Height初始视口高度与当前高度的最大值需要铺满屏幕最大可用区域(如全屏视频、游戏、沉浸式页面)。
dvhDynamic Viewport Height当前动态视口高度需要实时响应浏览器 UI 变化(如普通网页主容器、滚动时高度调整的布局)。

三、典型应用场景

  1. svh 的适用场景

    • 固定导航栏/底部按钮:确保内容始终可见,避免被浏览器 UI 遮挡。
      .fixed-header{height:10svh;}/* 导航栏高度固定为最小视口的 10% */.cta-button{height:8svh;}/* 按钮高度固定为最小视口的 8% */
    • 边界保护:防止内容因视口变化而溢出或被裁剪。
      .safe-container{min-height:100svh;}/* 容器最小高度等于最小视口高度 */
  2. lvh 的适用场景

    • 全屏展示:如视频播放、游戏、画廊等需要铺满屏幕的场景。
      .video-player{height:100lvh;}/* 视频播放器高度等于最大视口高度 */
    • 沉浸式体验:如登录页、引导页等需要最大化利用屏幕空间的页面。
      .landing-page{height:100lvh;}/* 页面高度等于最大视口高度 */
  3. dvh 的适用场景

    • 动态布局:如普通网页主容器,需要随浏览器 UI 变化调整高度。
      .main-content{height:calc(100dvh - 80px);}/* 主内容高度动态计算 */
    • 滚动交互:如需要随滚动实时调整高度的元素(如吸顶导航、折叠面板)。
      .sticky-header{height:10dvh;}/* 吸顶导航高度随视口动态变化 */

四、性能与兼容性考虑

  1. 性能影响

    • dvh因动态计算可能导致频繁重排(Reflow),需谨慎使用(如避免在动画中大量使用)。
    • svh/lvh性能更优,因值固定,无需实时计算。
  2. 浏览器兼容性

    • 主流支持:Chrome 89+、Safari 15+、Firefox 110+ 等现代浏览器已支持。
    • 回退方案:可通过@supports检测单位支持性,并提供传统vh作为回退。
      .hero-section{height:100vh;/* 传统单位回退 */height:100dvh;/* 新单位优先 */}@supports(height:100dvh){.hero-section{height:100dvh;}}

五、总结与推荐

  • 优先使用dvh:适合大多数动态布局场景,提供最流畅的用户体验。
  • 关键内容用svh:确保内容始终可见,避免被浏览器 UI 遮挡。
  • 全屏体验选lvh:如视频、游戏等需要最大化利用屏幕空间的场景。
  • 测试与优化:在使用新单位时,需充分测试不同设备和浏览器下的表现,并优化性能。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 1:47:36

SUMO仿真工具与AI结合:智能交通系统开发新思路

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于SUMO的智能交通仿真系统,集成AI流量预测模型。系统需要能够:1. 导入真实城市路网数据到SUMO;2. 使用深度学习模型预测不同时段的交…

作者头像 李华
网站建设 2026/6/12 14:26:38

黑猫黑客组织通过伪造Notepad++网站传播窃密恶意软件

臭名昭著的黑猫网络犯罪组织近期再度活跃,通过高级搜索引擎优化技术分发流行开源软件的伪造版本。该组织通过操纵搜索引擎算法,成功将精心设计的钓鱼网站(如伪造的Notepad下载页面)置顶于关键词搜索结果。这种策略性布局无情地利用…

作者头像 李华
网站建设 2026/6/9 21:20:15

MGeo模型调优指南:基于云端GPU的快速迭代技巧

MGeo模型调优指南:基于云端GPU的快速迭代技巧 什么是MGeo模型及其应用场景 MGeo是一个多模态地理文本预训练模型,专门用于处理地址相关的自然语言处理任务。它能够识别文本中的地理位置信息,并对地址进行标准化处理。在实际应用中&#xff0c…

作者头像 李华
网站建设 2026/6/4 21:05:14

MGeo实战:用预置镜像处理千万级地址清洗任务

MGeo实战:用预置镜像处理千万级地址清洗任务 地址数据清洗是许多政府机构和企业的刚需,特别是当面对千万级的历史数据时,传统规则方法往往力不从心。本文将介绍如何利用MGeo预置镜像快速搭建AI驱动的地址清洗方案,无需复杂的环境配…

作者头像 李华
网站建设 2026/6/14 19:56:22

数智驱动创新:知识图谱赋能技术转移破局之道

科易网AI技术转移与科技成果转化研究院 在科技创新的浪潮中,技术转移与成果转化始终面临核心痛点:创新主体间信息割裂、供需匹配低效、转化路径模糊,导致大量高价值成果沉睡于实验室,产业需求难以精准触达科研源头。这一现象不仅…

作者头像 李华
网站建设 2026/6/11 0:57:58

BusyBox实战:构建超小型Linux急救盘的完整指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于BusyBox的微型Linux系统构建工具,要求:1) 提供常见救援工具选项(fsck、dd、nc等)的可视化选择界面 2) 自动解决依赖关系…

作者头像 李华