全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-16 5 分钟 ✍️ juanwangdev

CSS视口单位

视口单位相对于浏览器可视区域大小,无需媒体查询即可实现响应式效果。

单位说明

单位含义基准
vw视口宽度1vw = 视口宽度的 1%
vh视口高度1vh = 视口高度的 1%
vmin视口较小值取 vw 和 vh 中的较小值
vmax视口较大值取 vw 和 vh 中的较大值

基本用法

全屏布局

CSS
.fullscreen {
  width: 100vw;
  height: 100vh;
}

/* 等比例缩放的正方形 */
.square {
  width: 50vmin;
  height: 50vmin;
}

响应式字体

CSS
.title {
  /* 字体随视口缩放 */
  font-size: 5vw;
}

/* 结合固定单位,设置最小最大值 */
.text {
  font-size: clamp(14px, 2vw, 24px);
}

居中定位

CSS
.centered {
  position: absolute;
  top: 50vh;
  left: 50vw;
  transform: translate(-50%, -50%);
}

实际场景

全屏轮播图

CSS
.slide {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
}

视口比例容器

CSS
/* 16:9 比例视频容器 */
.video-container {
  width: 100%;
  height: calc(100vw * 9 / 16);
}

/* 或使用 aspect-ratio */
.video-container {
  width: 100%;
  aspect-ratio: 16 / 9;
}

移动端底部安全区

CSS
.footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  padding-bottom: env(safe-area-inset-bottom);
}

注意:移动端浏览器中,100vh 可能包含地址栏高度,导致实际显示超出可视区域。

要点总结

  • vw/vh 相对于视口宽高,vmin/vmax 取较小/较大值
  • 配合 clamp() 可设置响应式字体的上下限
  • 注意移动端 100vh 的地址栏问题
  • 适合全屏布局、响应式字体、比例容器等场景

📝 发现内容有误?点击此处直接编辑

← 上一篇 CSS移动优先设计
下一篇 → CSS 选择器优先级
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库