css中单位整理:px,rem,em,vw,%,vm
1.px
px就是 pixel像素,相对于屏幕分辨率的长度单位;
2.em
相对单位,相对父元素的font-size,具有继承的特点。
如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸(浏览器默认字体是16px,)
特点:
1. 因为每一个父元素的font-size不同,em的值并不是固定的;
2. em继承父级元素的字体大小
3.rem
rem是CSS3新增的相对单位,相对HTML根元素。
如果你没有设置html的字体大小,就会以浏览器默认字体大小,一般是16px
html{font-size: 62.5%} /* 10 ÷ 16 × 100% = 62.5% */ body{font-size: 1.4rem;} /* 1.4 × 10px = 14px */
/*在根元素中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )*/
优点:
只需要设置根目录的大小就可以把整个页面的成比例的调好
rem兼容性
除了IE8及更早版本外,所有浏览器均已支持rem
4.%百分比
%百分比,相对于父元素的百分比值
1、对于普通定位元素就是我们理解的父元素
2、对于position: absolute;的元素是相对于已定位的父元素
3、对于position: fixed;的元素是相对于ViewPort(可视窗口)
5.vw、vh、vmax、vmin
这四个单位都是基于视口
vw是相对(viewport)视口宽度而定的,长度等于视口宽度的1/100
假如浏览器的宽度为200px,那么1vw就等于2px(200px/100)
vh是相对(viewport)视口高度而定的,长度等于视口高度的1/100
假如浏览器的高度为500px,那么1vh就等于5px(500px/100)
vmin和vmax
是相对于视口的高度和宽度两者之间的最小值
或最大值
如果浏览器的高为300px、宽为500px,那么1vmin就是3px,1vmax就是5px;
如果浏览器的高为800px,宽为1080px,那么1vmin也是8px,1vmax也是10.8px
浏览器高度900px,宽度为750px,
1vh=900px/100=9px,1vw = 750px/100=7.5px;很容易实现与同屏幕等高的框。
单位运算:
vmax,vmin,vw,vh都支持calc的各种单位和运算符
兼容性
https://www.caniuse.com/#search=vw
注意点:
1.尽量使用相对尺寸单位
使用相对尺寸单位计量,则在调整页面的布局的时候,不需要遍历所有的内部
DOM结构,重新设置内部子元素的尺寸大小。如果是随着父容器或者是整体页
面布局而改变尺寸,则使用%更好,如元素的高度和宽度设置;
2.字体尺寸尽量使用em,rem
方便保证保持统一性