vw单位
vw是css的一个属性,和px,rem等类似,属于长度单位。
在浏览器中, 1 vw = viewport 的宽度 /100
根据这个特性,vw 可以帮助我们实现移动端自适应布局,其优点在于所见即所得,甚至优于rem,因为完全不用使用额外的计算。
推荐和sass、less这种css预处理语言一起使用,因为其可以定义变量及函数,会在使用vw上提供巨大帮助。
@vv:7.5vw;
.circle{
width: 100/@vv;
height: 100/@vv;
border: 1px solid red;
border-radius: 50%;
font-size: 16/@vv;
text-align: center;
line-height: 100/@vv;
}
header.clear{
width: 100%;
height: 80/@vv;
font-size: 42/@vv;
background:
line-height: 80/@vv;
text-align: center;
}
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>vw布局练习</title>
<link href="less/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<header class="clear">
这是header
</header>
<div class="circle">
circle
</div>
</body>
</html>
下面三张图分别是在iphone 6|7|8 和ihone 6P|7P|8P 以及ipad Pro中的表现
原理
以设计稿为750为例,假设viewport代表窗口宽度
750 => viewport
7.5 => viewport/100
1vw => 7.5
300 => 300/7.5 vw
@vv = 7.5vw
300 => 300/@vv