前言
最近在学习前端,很多代码中引用了"奇奇怪怪"的单位,也是一个个百度才得知其含义.本篇参照了很多大佬的博客记录一个笔记方便以后查阅.
背景介绍
传统的项目开发中,我们只会用到px、%、em这几个单位,它可以适用于大部分的项目开发,并且拥有比较良好的兼容性。但是你知道吗?从css3开始,浏览器对逻辑单位的支持又提升到了另外一个境界,增加了rem、vh、vw、vm等一些新的长度单位,我们可以利用这些新的单位开发出比较良好的响应式页面,随之覆盖多种不同分辨率的终端,包括移动设备等。现在让我们来看下这些长度单位有什么区别。
px
px就是pixel的缩写,意为像素。px就是一张图片最小的一个点,一张位图就是千千万万的这样的点构成的,比如常常听到的电脑像素是1024x768的,表示的是水平方向是1024个像素点,垂直方向是768个像素点。
em
em是一种计算方式为相对于父元素的字体大小的单位,1em等于父元素设置的字体大小,如果父元素没有设置字体大小,则继续往父元素查找,直到有设置大小的,若都没有设置大小,则使用浏览器默认大小。
CSS中常用属性里使用em这样计算方式的属性有:
border
width
height
padding
margin
line-height
rem
rem是css3新单位,rem和em类似,也是相对单位。rem的参照物是根元素HTML的font-size,因此,如果改变HTML的font-size值,那么所有使用的rem单位大小都会随着改变,适用于移动端。(不支持IE8以下)
%
百分比也较为常用。其中对font-size设置百分比值时,是以浏览器默认字体大小16px为参照计算的。
v系单位
v系单位常用于移动端,是基于浏览器用来显示内容的区域大小,也就是视窗大小来就算的。
具体分为4个:
vw
vw是css3新单位,view width的缩写,视窗宽度,1vw等于视窗宽度的1%。
举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12 px。
vh
vh是css3新单位,view height的缩写,视窗高度,1vh等于视窗高度的1%。
举个例子:浏览器高度900px, 1 vh = 900px/100 = 9 px。
vmin
vmin:基于vw和vh中最小值来计算,1vmin等于最小值的百分之一
vmax
vmax:基于vw和vh中最大值来计算,1vmax等于最大值的百分之一
css还有哪些长度单位?
in:寸
cm:厘米
mm:毫米
t:point,大约1/72寸
pc:pica,大约6pt,1/6寸
1in = 2.54cm = 25.4 mm = 72pt = 6pc = 96px
单位运算
CSS中可以使用CSS函数calc()来通过计算确定一个属性的值。
例如: