vw/vh
是相对单位
- vw:viewport width
- 1vw = 1/100视口宽度
- vh:viewport height
- 1vh = 1/100视口高度
vw单位尺寸
1.确定设计稿对应的vw尺寸 (1/100视口宽度)
- 查看设计稿宽度 → 确定参考设备宽度 (视口宽度) → 确定vw尺寸 (1/100 视口宽度)
2.vw单位的尺寸 = px单位数值 / ( 1/100 视口宽度 )
vh单位尺寸
- 确定设计稿对应的vh尺寸(1/100视口高度)
- 查看设计稿宽度 → 确定参考设备高度 (视口高度) → 确定vh尺寸 (1/100 视口高度)
- vh单位的尺寸 = px单位数值 / ( 1/100 视口高度 )
vw与vh不能混用。因为vh是1/100视口高度,全面屏视口高度尺寸大,如果混用可能会导致盒子变形
例子
vw
HTML文件:
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vw适配</title>
<link rel="stylesheet" href="./demo.css">
</head>
<body>
<div class="box"></div>
</body>
</html>
Less文件:
代码语言:javascript复制// out: ./demo.css
* {
margin: 0;
padding: 0;
}
/* 写一个68×29的盒子.设计稿宽度为 375
1 vw = 3.75px */
.box {
width: (68 / 3.75vw);
height: (29 / 3.75vw);
background-color:red;
}
vh
HTML文件:
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vh</title>
<link rel="stylesheet" href="./demo.css">
</head>
<body>
<div class="box"></div>
</body>
</html>
Less文件:
代码语言:javascript复制// out: ./demo.css
* {
margin: 0;
padding: 0;
}
/* 写一个68×29的盒子.设计稿高度为 667
1 vh = 6.67px */
.box {
width: (68 / 6.67vh);
height: (29 / 6.67vh);
background-color: #246;
}