目录
一、长度单位
在CSS中以不少值是以长度作为值的,盒子模型的属性就是一些明显的值属性:width、height、margin、padding、border。除此之外还有很多的css属性的值同样也是长度值,像偏移量offset、box-shadow的大小或字体大小、间距等,在CSS中存在众多的长度单位,下面我们就来说一下长度单位以及它们的用途。
二、简单介绍
在CSS的长度单位分为两种:绝对长度 和 相对长度。
- 绝对长度:px、in、cm、mm、pt、pc
- 相对长度:em、rem、ex、vh、vw、vmin、vmax、%、fr
三、详细介绍
1、相对长度单位
px:表示像素,像素是相对于屏幕分辨率的,页面按照精确像素展示,不会因为其它元素的尺寸变化而变化,像素仍然是最典型的度量单位,例如:windows的用户所使用的分辨率96像素/英寸,而mac的用户所使用的分辨率一般是72像素/英寸,一般javascript语言里的单位就是使用的像素。
div {
width: 200px;
in:英寸(inch)是一个物理度量文件,但是在CSS领域,英寸只不过被直接映射成像素罢了。(1in == 2.54cm == 96px)
div {
width: 2in;
}
cm:厘米是比较熟悉有用的物理度量单位。它也映射成像素。(1cm == 37.8px)
div {
width: 20cm;
}
mm:毫米是个小数量级的物理度量单位。(1mm == 0.1cm == 3.78px )
div {
width: 200mm;
}
pt:点(Points)也是物理长度单位。(1pt == 1/72in == 96/72px)
div {
width: 20pt;
}
pc:派卡(Pica)和points一样,只不过(1pc == 12pt)。
div {
width: 20pt;
}
2、绝对长度单位
em:em是一个相对单位,相对于当前对象内文本的字体尺寸,如当前对行内的字体尺寸未被人设置,则相对于浏览器 的默认字体尺寸。
起初排版度量时是基于当前字体大写字母 M 的尺寸的,当改变font-family时,它的尺寸不会发生改变,但在改变font-size的大小时,它的尺寸就会发生改变,em 会继承父级元素的字体大小。(下面有关于 em 和 rem 的例子)
在没有任何CSS规则的前提下:(1em == 16px == 0.17in == 12pt == 1pc == 4.2mm == 0.42cm)
div {
width: 20pt;
}
rem:rem 和 em 一样是一个相对单位,但是和 em 不同的是 rem 总是相对于根元素(如:root{}),而不像em一样使用级联的方式来计算尺寸。这种相对单位使用起来更简单。
div {
width:40rem;
}
ex:相对长度单位,相对于字符 "x" 的高度,此高度通常为字体尺寸的一半,如当前对行内的文本的字体尺寸未被人为设置,这相对于浏览器的默认字体尺寸。和 em 不同,当改变 font-family 时 em 不会改变,而 ex 单位会变化,因为一个单位的值和那个字体是特殊的约束关系。
div {
width:40ex;
}
ch:ch的内涵和ex相对于x的高度相似,只是 ch 是基于字符 0 的宽度的而不是基于字符 x 高度的。1ch也就是数字0的宽度,当 font-family 改变的时候 ch 也会随着改变。
div {
width:40ch;
}
vw:vw(viewpoint width)是 可视宽度 单位(视窗宽度),1vw 等于可视区宽度的 百分之一 ,vw单位跟百分比很相似,不同的是vw所有的值对所有的元素都一样,与他们父元素 或 父元素的宽度 无关,有点像rem单位那样总是相对于根元素。(下面有关于 vh 和 vw 的例子)
div {
width:40vw;
}
vh:vh(viewport height)和vw(viewport width)单位一样,不同的vh是相对于可视区的高度(视窗高度)。
div {
width:40vh;
}
vmin:vmin的值是当前vw和vh中 较小 的值,在标准 尺寸类型的使用实例中,和由自己确定屏幕大小的vw、vh单位相比,vmin是