Day13:vw 和 vh 基本使用

目标:使用 vw 和 less 完成移动端的布局。

一、vw 适配方案

1、vw 和 vh 基本使用

vw 和 vh 是相对单位,相对视口尺寸计算结果。

  • vw:viewport width(1vw = 1/100视口宽度 )
  • vh:lviewport height ( 1vh = 1/100视口高度 )
html 复制代码
<head>
  <title>vw 和 vh 基本使用</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    /* vw 和 vh 是相对视口宽高计算结果,可以直接实现移动端适配效果 */
    /* .box {
        width: 50vw;
        height: 30vw;
        background-color: pink;
      } */

    .box {
      width: 20vh;
      height: 50vh;
      background-color: green;
    }
  </style>
</head>

<body>
  <div class="box"></div>
</body>
2、px 转换为 vw 和 vh

vw单位的尺寸 = px 单位数值 / ( 1/100 视口宽度 )

vh单位的尺寸 = px 单数数值 / ( 1/100 视口高度 )

以主流设计稿尺寸(375 * 667)为例子,则:

  • 1vw = xxx px / 3.75
  • 1vh = xxx px / 6.67

举一个简单的例子,帮助大家理解:

  1. index.html 代码
html 复制代码
<head>
    <title>px 转换为 vw 和 vh</title>
    <link rel="stylesheet" href="./demo.css">
</head>

<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>
  1. less 代码
less 复制代码
.box1 {
  width: (68 / 3.75vw);
  height: (29 / 3.75vw);
  background-color: pink;
}

.box2 {
  width: (68 / 6.67vh);
  height: (29 / 6.67vh);
  background-color: green;
}

// px单位尺寸 / 1/100视口的宽度或高度
  1. css 代码
css 复制代码
.box1 {
  width: 18.13333333vw;
  height: 7.73333333vw;
  background-color: pink;
}

.box2 {
  width: 10.19490255vh;
  height: 4.34782609vh;
  background-color: green;
}
3、vw 和 vh 混合使用的问题

vw 和 vh 不混合使用, 一般使用 vw 作为单位尺寸。

比如:375 * 667 的设计稿有一个 100 * 100 的正方形,如果混合使用 width: (100 / 3.75vw),height: (100 / 6.67vh),在 375 * 667 屏幕下是个正方形,如果换成其他像素的手机,就可能不再是正方形了。

所以我们在使用 vw 或 vh 布局时,只使用是一个单位,width: (100 / 3.75vw),height: (100 / 3.75vw)width: (100 / 6.67vh),height: (100 / 6.67vh),这样就能保证在所有屏幕上都是一个正方形。一般我们使用 vw 开发。

二、综合案例-酷我音乐

结合之前所学,使用 vw 完成如下移动端页面布局:

想要完整代码的,点击这里获取Day13综合案例完整代码。完全免费,仅供学习参考使用。


乾坤未定,你我皆是黑马

相关推荐
青皮桔5 小时前
CSS实现百分比水柱图
前端·css
失落的多巴胺5 小时前
使用deepseek制作“喝什么奶茶”随机抽签小网页
javascript·css·css3·html5
牧杉-惊蛰8 小时前
uniapp微信小程序css中background-image失效问题
css·微信小程序·uni-app
哎呦你好9 小时前
【CSS】Grid 布局基础知识及实例展示
开发语言·前端·css·css3
islandzzzz10 小时前
(第二篇)HMTL+CSS+JS-新手小白循序渐进案例入门
前端·javascript·css·html
晴殇i12 小时前
CSS 迎来重大升级:Chrome 137 支持 if () 条件函数,样式逻辑从此更灵活
前端·css·面试
Hilaku12 小时前
2025年,每个前端都应该了解的CSS选择器:`:has()`, `:is()`, `:where()`
前端·css
sunbyte12 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DragNDrop(拖拽占用组件)
前端·javascript·css·vue.js·vue
旷世奇才李先生13 小时前
CSS 安装使用教程
前端·css
遗憾随她而去.13 小时前
深入理解CSS中的BFC 与IFC , 布局的两大基础概念
前端·css