0

0

css 使用 vw/vh 单位_灵活调整元素的大小与位置

P粉602998670

P粉602998670

发布时间:2026-02-03 10:56:02

|

563人浏览过

|

来源于php中文网

原创

vw/vh 是基于视口宽高的相对单位,1vw=视口宽1%,1vh=视口高1%,不依赖父元素;% 相对于父元素,px 是绝对单位;vw/vh 适合全屏布局但需注意 iOS Safari 的 vh 跳变问题及字体失控风险。

css 使用 vw/vh 单位_灵活调整元素的大小与位置

vw/vh 是什么,和 %、px 有什么本质区别

vwvh 是基于视口(viewport)尺寸的相对单位:1vw = 视口宽度的 1%,1vh = 视口高度的 1%。它不依赖父容器,只认 document.documentElement.clientWidthdocument.documentElement.clientHeight

  • % 是相对于父元素的宽/高,嵌套深了容易失控
  • px 是绝对单位,缩放或不同设备下表现僵硬
  • vw/vh 始终锚定屏幕,适合全屏布局、响应式卡片、适配刘海屏等场景

注意:vh 在 iOS Safari 中可能因地址栏收放导致视口高度跳变,真实高度未必等于 window.innerHeight

移动端用 vh 做全屏高度时,为什么内容被截断或滚动条出现

这是 iOS Safari 的经典问题:地址栏收起时 vh 按“最大可用高度”计算,但页面渲染时地址栏可能还占着空间,导致 100vh 实际大于可视区域。

常见错误写法:

立即学习前端免费学习笔记(深入)”;

section { height: 100vh; }

解决方式有二:

  • 用 JavaScript 动态设置(兼容性好):

    document.documentElement.style.setProperty('--vh', `${window.innerHeight * 0.01}px`);
    然后在 CSS 中:
    section { height: calc(var(--vh, 1vh) * 100); }
    并监听 resize 事件更新
  • 或改用 dvh(2023 年后支持渐广):

    section { height: 100dvh; }
    dvh(dynamic viewport height)专为解决此问题设计,但 Android Chrome 104+、Safari 16.4+ 才支持,旧版本需降级

vw/vh 做字体大小时,为什么文字忽大忽小、阅读体验差

直接写 font-size: 4vw 看似灵活,实则危险:

  • 在超宽屏(如 3840px)下,4vw = 153.6px,远超可读上限
  • 在小屏(如 320px)下,4vw = 12.8px,太小看不清

这不是单位问题,是缺乏约束。正确做法是搭配 clamp()

Munch
Munch

AI营销分析工具,长视频中提取出最具吸引力的短片

下载
p { font-size: clamp(1rem, 2.5vw + 0.5rem, 1.5rem); }

含义:最小 1rem,最大 1.5rem,中间按视口宽度线性插值。其中 2.5vw + 0.5rem 是弹性基准,可根据设计稿调整系数。

别忘了设置根字号基准:

html { font-size: 100%; }
否则某些浏览器会因用户缩放导致 rem 偏移,影响 clamp 计算。

用 vw/vh 布局时,如何避免与媒体查询冲突

很多人同时写:

@media (max-width: 768px) { .card { width: 90vw; } }
.card { width: 30vw; }

这看似“兜底”,实则容易覆盖失效——因为 vw 规则优先级不变,而媒体查询只是条件生效,并不提高选择器权重。

更稳妥的做法是:

  • vw 当作“基础弹性”,媒体查询里只做关键断点修正,比如:

    .hero { width: 80vw; max-width: 1200px; }
    @media (max-width: 480px) {
    .hero { width: 95vw; max-width: none; }
    }
  • 避免在媒体查询中重复定义同一属性的 vw 值(如从 30vw 改成 80vw),容易误判缩放临界点

  • 如果需要精确控制多端比例,优先考虑 container queries(配合 inline-size),而非强行用 vw 模拟

实际项目里,vw/vh 最适合解决“锚定屏幕”的需求,而不是替代所有响应式逻辑。用得越泛,越难收口。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

869

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

756

2023.11.06

android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

293

2023.08.14

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

1757

2023.08.22

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

2053

2023.09.19

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

277

2023.10.18

Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

351

2024.03.01

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

89

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

24

2026.02.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.2万人学习

CSS教程
CSS教程

共754课时 | 26.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号