1 基本单位介绍
1、%
:百分比单位,相对于父元素(宽度和高度)的百分比。
2、px
:像素单位,表示屏幕上的一个点。
3、in
:英寸单位,一般买电脑就说XX英寸,它不是指长多少宽多少,而是说对角线的长度。英寸与像素的转化与分辨率有关,比如分辨率是96,就表示一英寸包含96个像素点。
4、cm
:厘米单位,1in
≈2.54cm
,1cm
约包含37.78个像素点。
5、mm
:毫米单位,1cm
=10mm
。
6、pt
:磅单位,1pt
=1/72in
,1pt
包含1.33个像素点。
7、em
:相对于字体的大小,当为盒子设置了em
单位宽度或者高度时,盒子内字体越大,盒子越宽/高。默认浏览器的相对字体高度为16em。
例如,没有设置盒子内字体大小,为盒子设置宽度10em,可以看到盒子最终的宽度是160px,因为这时1em=16px。
<div class="box"></div>
<style>
.box {
width: 10em;
height: 30px;
background-color: pink;
}
</style>
如果这时将字体设置为20px,那么盒子的宽度会变为200px,因为这是1em=20px:
<div class="box"></div>
<style>
.box {
width: 10em;
height: 30px;
background-color: pink;
font-size: 20px;
}
</style>
8、rem
:相对于根元素字体的大小,盒子的宽度与父元素和自身元素字体大小没关系,与根元素字体大小(默认是16px)有关。
例如,给盒子设置宽度10rem,然后设置字体大小20px,然后我们发现屏幕上显示的宽度还是160px。
<div class="box"></div>
<style>
.box {
width: 10rem;
height: 30px;
background-color: pink;
font-size: 20px;
}
</style>
那么如果将根元素字体大小,也就是<html>
标签上的字体大小改为20px,我们会发现盒子宽度变为了200px,因为这时1rem
=20px
。
<div class="box"></div>
<style>
html {
font-size: 20px;
}
.box {
width: 10rem;
height: 30px;
background-color: pink;
}
</style>
9、ex
:相当于x字母的高度,也会随着字体的增大而增大。
10、vw
:表示视口的宽度,1vw
等于视口宽度的1%
。
11、vh
:表示视口的高度,1vh
等于视口高度的1%
。
12、vmin
:选取vw
和vh
中最小的那个。
13、vmax
:选取vw
和vh
中最大的那个。
2 vw、vh和%的区别
1、%
是相对于父元素的大小而设定的比例,vw
、wh
是由视窗的大小来决定
2、vw
、vh
可以直接获取视窗的宽度或高度,%
在设置时要根据body的高度的情况,往往无法正确的获取实际宽度或高度
3 em和rem的区别
1、rem是相对于根元素进行计算,而em是相对于当前元素或父元素的字体大小。
2、em是相对于当前元素或父元素进行换算,层级越深,换算越复杂。而rem是相对于根元素计算,避免层级关系。