本篇主要列举并比较下CSS中常用到的几个长度单位。包含px、em、rem、vh、vw、rpx、in、cm、mm、ex、pt、pc。
px
px(Pixel)像素。相对长度单位。1px等于计算机屏幕上的一个点像素的宽度。px是相对于显示器屏幕分辨率而言的。
em
em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前行内文本的字体尺寸未被人为设置,则相当于浏览器的默认字体尺寸。
em特点
- em的值并不是固定的
- em会继承父级元素的字体大小
注意:任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em = 16px。那么12px = 0.75em,10px = 0.625em。
如果使用em作为当前项目的单位,为了简化font-size的换算,需要在CSS中的body选择器中声明font-size=62.5%,这就使em值变为 16px * 62.5% = 10px,这样12px = 1.2em,10px=1em,也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。
rem
rem(Font size of the root element)是CSS3新增的一个相对单位,指相对于根元素(即html元素)的字体大小的单位。
rem特点
- 可以做到只修改根元素就成比例地调整所有字体大小
- 避免px em混用导致的字体复数计算
如果使用rem作为当前项目的单位,可以设置1
2
3html {
font-size: 100px;
}
那么10px
就可以表示为.1rem
vh/vw
vh(Viewport height)相对于视口的高度。视口被均分为100单位的vh,通过vh可以在不知道视口高度的情况下设置一个相对视口的高度。同理,vw指相对于视口的宽度。
用法1
2
3
4.banner {
height: 100vh;
width: 100vw;
}
rpx
rpx(Relative pixcel) 相对像素。只有在小程序中采用的长度计算值。以屏幕宽度恒为750rpx来计算。以iPhone6来讲,屏幕宽度为375px,所以在iPhone6中,375px = 750rpx,也就是1rpx = 0.5px。
其他
多是一些绝对长度单位
1in = 2.54cm = 25.4 mm = 101.6q = 72pt = 6pc = 96px
单位 | 含义 |
---|---|
in | 英寸 |
pt | 磅 (1pt = 1/72 in) |
cm | 厘米 |
mm | 毫米 |
q | 1/4毫米 (1q = 1/4mm) |
pc | 派卡(Picas)(1pc = 12px) |
ex | 相对长度单位 ex 代表了字符 x 的高度(通常是字体尺寸的一半) |
ch | 相对长度单位 ch 代表了字符 0 的宽度 |
一些坑
PC chrome有12px最小字号限制,若使用10px会造成pc调试困难带来不必要的麻烦,所以可以设置字号为12px,然后通过 transform: scale(.8)
来达到同样的效果。