最近看别人写代码,用到了height:100vh;当时感觉很有意思,以前没有见过vh这个单位,于是乎就到CSS3参考手册找答案了。。。自己顺便做了下总结:
1.vh vw:相对于视口的高度,宽度。视口被均分为100单位的vh,vw,神马意思呢?看个demo

1 <!DOCTYPE html>
2 <html lang="Zh-cn">
3
4 <head>
5 <meta charset="UTF-8">
6 <title>css_vh_vw</title>
7 </head>
8 <style type="text/css">
9 *{
10 margin: 0;
11 padding: 0;
12 }
13 .a{
14 height:10vh;
15 width: 10vw;
16 background-color: #3a9;
17 }
18 </style>
19
20 <body>
21 <div class="a">
22
23 </div>
24 </body>
25 </html>

先说下我的浏览器窗口大概是1366*662,而代码里宽高分别是10vh 10vw;相当于把浏览器视口分成100份,取10vh 10vw,相当于取其中的10份,1366/100*10约等于136.59
662/100*10约等于66.19。
2.rem em px:
rem:是一个相对单位,相对根元素字体大小的单位,再直白点就是相对于html元素字体大小的单位;
em:相对于父元素而言,相对于rem有点麻烦,跟px相比优点是可以自适应,em也是个相对单位;
px:设计师给出的一般都是以px为单位,所以使用px不用计算,比较简单,但是不能自适应。
重点说下rem: 首先浏览器默认字体大小16px。rem: px的换算为:1::10;
demo:

1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>css_vh_vw</title>
6 </head>
7 <style type="text/css">
8 html{
9 font-size: 62.5%;
10 }
11 .a{
12 font-size: 10px;
13 }
14 .b{
15 font-size: 1rem;
16 }
17 .c{
18 font-size: 1.2rem;
19 }
20 .d{
21 font-size: 16px;
22 }
23 *{
24 margin: 0;
25 padding: 0;
26 }
27
28 </style>
29 <body>
30 高
31 <div class="a">
32 高
33 </div>
34 <div class="b">
35 高
36 </div>
37 <div class="c">
38 高
39 </div>
40 <div class="d">
41 高
42 </div>
43 </body>
44 </html>
效果图:(基于火狐浏览器)

补充:google的浏览器字体最小识别12px,不能再小了,再小,浏览器不能呈现你想要的效果,可以用一些技巧解决,自行百度 google。
3.ex: 相对长度单位。相对于字符“x”的高度。此高度大概为字体尺寸的一半,不完全等于一半,(用火狐浏览器测试)

1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>css_vh_vw</title>
6 </head>
7 <style type="text/css">
8
9 .a{
10 font-size: 10px;
11 }
12 .b{
13 font-size: 16px;
14 }
15 .c{
16 font-size: 8px;
17 }
18 .d{
19 font-size: 1ex;
20 }
21 *{
22 margin: 0;
23 padding: 0;
24 }
25
26 </style>
27 <body>
28 X
29 <div class="a">
30 X
31 </div>
32 <div class="b">
33 X
34 </div>
35 <div class="c">
36 v
37 </div>
38 <div class="d">
39 X
40 </div>
41 </body>
42 </html>
测试会发现1ex不等于8px的字体,(因为这里浏览器默认字体为16px),不完全是一半嘛
4.%:
% 相对长度单位。相对于浏览器窗口的大小。
5.
1in = 2.54cm = 25.4 mm = 101.6q = 72pt = 6pc = 96px;
6.ch
数字“0”的宽度
7.vmin vmax;
h1 {font-size: 8vmin;}
如果视口的宽度是300mm,高度是200mm,那么上述代码中h1元素的字号将为16mm,即(8x200)/100,因为高度比宽度要小,所以计算的时候相对于高度。
最后:贴张图:

参考内容:http://www.css88.com/book/css/values/length/vmax.htm
来源:https://www.cnblogs.com/gaoxuerong123/p/7217996.html
