CSS 有几个不同的单位用于表示长度。
一些设置 CSS 长度的属性有 width, margin, padding, font-size, border-width, 等。
长度有一个数字和单位组成如 10px, 2em, 等。
数字与单位之间不能出现空格。如果长度值为 0,则可以省略单位。
对于一些 CSS 属性,长度可以是负数。
有两种类型的长度单位:相对和绝对。
下表中的数字表示支持该长度单位的最低浏览器版本。
长度单位 |
Chrome |
IE |
Firefox |
Safari |
Opera |
em, ex, %, px, cm, mm, in, pt, pc |
1.0 |
3.0 |
1.0 |
1.0 |
3.5 |
ch |
27.0 |
9.0 |
1.0 |
7.0 |
20.0 |
rem |
4.0 |
9.0 |
3.6 |
4.1 |
11.6 |
vh, vw |
20.0 |
9.0 |
19.0 |
6.0 |
20.0 |
vmin |
20.0 |
9.0* |
19.0 |
6.0 |
20.0 |
vmax |
26.0 |
不支持 |
19.0 |
不支持 |
20.0 |
注意: Internet Explorer 9 通过不标准的名称 vm 来支持 vmin 。
相对长度
相对长度单位指定了一个长度相对于另一个长度的属性。对于不同的设备相对长度更适用。
单位 |
描述 |
在线实例 |
em |
它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位。一般浏览器字体大小默认为16px,则2em == 32px; |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
p {
font-size: 16px;
line-height: 2em;
}
div {
font-size: 30px;
border: 1px solid black;
}
span {
font-size: 0.5em;
}
</style>
</head>
<body>
<p>这个段落的高度为: 2x16px = 32px。</p>
<p>这个段落的高度为: 2x16px = 32px。</p>
<p>这个段落的高度为: 2x16px = 32px。</p>
<div>div 的 font-size 设置为 30px。 <span>div 中的 span 元素 font-size 为 0.5em, 计算结果后即为 0.5x30 = 15px</span>。</div>
</body>
</html>
尝试一下 »
ex |
依赖于英文子母小 x 的高度 |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
div {
font-size: 30px;
border: 1px solid black;
}
span {
font-size: 1ex;
}
</style>
</head>
<body>
<div>div 的 font-size 设置为 20px。 <span>div 中的 span 元素 font-size 为 1ex</span>。</div>
</body>
</html>
尝试一下 »
ch |
数字 0 的宽度 |
|
rem |
根元素(html)的 font-size |
|
vw |
viewpoint width,视窗宽度,1vw=视窗宽度的1% |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 20vw;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>重置浏览器查看查看 h1 的字体大小如何改变。</p>
<p>viewpoint width,视窗宽度,1vw=视窗宽度的1% 。</p>
<p>IE8 及其更早版本不支持该长度属性。</p>
</body>
</html>
尝试一下 »
vh |
viewpoint height,视窗高度,1vh=视窗高度的1% |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 20vh;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>重置浏览器查看查看 h1 的字体大小如何改变。</p>
<p>viewpoint height,视窗高度,1vh=视窗高度的1% 。</p>
<p>IE8 及其更早版本不支持该长度属性。</p>
</body>
</html>
尝试一下 »
vmin |
vw和vh中较小的那个。 |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 15vmin;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>重置浏览器(高度和宽带)查看查看 h1 的字体大小如何改变。</p>
<p>vmin为vw和vh中较小的那个。</p>
<p>IE8 及其更早版本不支持该长度属性。</p>
</body>
</html>
尝试一下 »
vmax |
vw和vh中较大的那个。 |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 15vmax;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>重置浏览器(高度和宽带)查看查看 h1 的字体大小如何改变。</p>
<p>vmin为vw和vh中较大的那个。。</p>
<p>IE8 及其更早版本不支持该长度属性。</p>
</body>
</html>
尝试一下 »
% |
|
|
提示: rem与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。
绝对长度
绝对长度单位是一个固定的值,它反应一个真实的物理尺寸。绝对长度单位视输出介质而定,不依赖于环境(显示器、分辨率、操作系统等)。
单位 |
描述 |
在线实例 |
cm |
厘米 |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 1.5cm;
}
h2 {
font-size: 1cm;
}
p {
font-size: 0.5cm;
line-height: 1cm;
}
</style>
</head>
<body>
<h1>这是一个标题 1</h1>
<h2>这是一个标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
尝试一下 »
mm |
毫米 |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 15mm;
}
h2 {
font-size: 10mm;
}
p {
font-size: 5mm;
line-height: 10mm;
}
</style>
</head>
<body>
<h1>这是一个标题 1</h1>
<h2>这是一个标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
尝试一下 »
in |
英寸 (1in = 96px = 2.54cm) |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 1in;
}
h2 {
font-size: 0.5in;
}
p {
font-size: 0.2in;
line-height: 0.5in;
}
</style>
</head>
<body>
<h1>这是一个标题 1</h1>
<h2>这是一个标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
尝试一下 »
px * |
像素 (1px = 1/96th of 1in) |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 50px;
}
h2 {
font-size: 30px;
}
p {
font-size: 15px;
line-height: 20px;
}
</style>
</head>
<body>
<h1>这是一个标题 1</h1>
<h2>这是一个标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
尝试一下 »
pt |
point,大约1/72英寸; (1pt = 1/72in) |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 50pt;
}
h2 {
font-size: 25pt;
}
p {
font-size: 15pt;
line-height: 25pt;
}
</style>
</head>
<body>
<h1>这是一个标题 1</h1>
<h2>这是一个标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
尝试一下 »
pc |
pica,大约6pt,1/6英寸; (1pc = 12 pt) |
- 尝试一下
- |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
h1 {
font-size: 4.5pc;
}
h2 {
font-size: 3pc;
}
p {
font-size: 1.5pc;
line-height: 3pc;
}
</style>
</head>
<body>
<h1>这是一个标题 1</h1>
<h2>这是一个标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
尝试一下 »
像素或许被认为是最好的"设备像素",而这种像素长度和你在显示器上看到的文字屏幕像素无关。px实际上是一个按角度度量的单位。