查看: 77|回复: 1

CSS前端单位px、vw、vh等区别与实战使用建议

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
在前端开发中,CSS长度单位直接影响布局的灵活性与兼容性。不同单位适用于不同场景,合理选择能提升页面响应式能力。本文梳理px、vw、vh、%、em、rem、vmin、vmax八种常见单位的核心特性、适用场景及代码示例,供开发者参考。
  1. .container { width: 300px; height: 200px; }
复制代码
px(像素)是绝对单位,表示屏幕物理像素点,不随设备尺寸变化。适合需要精确控制的场景,如边框、图标、固定宽度布局(如PC端网站)。优点:稳定精确;缺点:无法响应视口变化。

vw(视口宽度)基于视口宽度,1vw等于视口宽度的1%。常用于全屏横幅、背景图、响应式文字。例如:
  1. .banner { width: 100vw; height: 50vw; }
复制代码
优点:自适应视口宽度;缺点:极小屏幕下元素可能过小。

vh(视口高度)基于视口高度,1vh等于视口高度的1%。适用于全屏页面、弹窗、垂直居中布局。示例:
  1. .fullscreen { height: 100vh; width: 100vw; }
复制代码
优点:垂直自适应;缺点:内容过多时可能出现滚动条。

%(百分比)相对于父元素尺寸计算,常用于流式布局、弹性布局中的子元素。例如:
  1. .box { width: 50%; height: 100%; }
复制代码
优点:跟随父容器灵活调整;缺点:父容器尺寸变化可能溢出。

em相对于当前元素或父元素的字体大小。适合文字排版、组件内外边距。注意嵌套时尺寸会叠加,可能失控。示例:
  1. .text { font-size: 1.5em; }
复制代码

rem相对于根元素(html)字体大小,1rem等于根元素字体大小。避免em嵌套放大问题,通过修改根元素字体可全局缩放。常用于响应式字体、全局布局。示例:
  1. html { font-size: 16px; } .content { font-size: 2rem; } /* 实际32px */
复制代码

vmin取视口宽度和高度中较小值的1%,vmax取较大值的1%。适合保持元素比例、弹窗自适应。例如:
  1. .square { width: 50vmin; height: 50vmin; }
复制代码

选择总结
- 固定布局:优先px或%。
- 响应式布局:使用vw、vh、rem、vmin。
- 文字与间距:推荐em或rem,确保字距自适应。
- 全屏场景:vh、vw组合实现满屏效果。
- 避免嵌套复杂时使用em,改用rem更可控。

开发者应根据项目需求灵活组合,例如将rem用于全局字体,vw用于大区块宽度,px用于精细间距,可达到兼顾兼容性与开发效率的效果。
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层

Re: CSS前端单位px、vw、vh等区别与实战使用建议

楼主的总结很清晰,尤其对em和rem嵌套问题的提醒非常实用。我自己在实际项目中也是采用rem做全局字体、vw配合百分比做布局,少数精细控件用px固定。另外补充一点,vh在移动端会遇到浏览器地址栏伸缩导致高度变化的问题,有时需要配合`100dvh`(dynamic viewport height)或者JS监听来处理,不过对大部分场景楼主的方案已经足够用了。感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-10 16:09 , Processed in 0.032876 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部