浏览器支持
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 。
相对长度
相对长度单位指定了一个长度相对于另一个长度的属性。对于不同的设备相对长度更适用。
<!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>
<!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>
<!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>
<!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>
<!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>
<!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>
单位 | 描述 | 在线实例 |
---|---|---|
em | 它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位。一般浏览器字体大小默认为16px,则2em == 32px; | - 尝试一下 - |
ex | 依赖于英文子母小 x 的高度 | - 尝试一下 - |
ch | 数字 0 的宽度 | |
rem | 根元素(html)的 font-size | |
vw | viewpoint width,视窗宽度,1vw=视窗宽度的1% | - 尝试一下 - |
vh | viewpoint height,视窗高度,1vh=视窗高度的1% | - 尝试一下 - |
vmin | vw和vh中较小的那个。 | - 尝试一下 - |
vmax | vw和vh中较大的那个。 | - 尝试一下 - |
% |
提示: rem与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。
绝对长度
绝对长度单位是一个固定的值,它反应一个真实的物理尺寸。绝对长度单位视输出介质而定,不依赖于环境(显示器、分辨率、操作系统等)。
<!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>
<!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>
<!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>
<!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>
<!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>
<!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>
单位 | 描述 | 在线实例 |
---|---|---|
cm | 厘米 | - 尝试一下 - |
mm | 毫米 | - 尝试一下 - |
in | 英寸 (1in = 96px = 2.54cm) | - 尝试一下 - |
px * | 像素 (1px = 1/96th of 1in) | - 尝试一下 - |
pt | point,大约1/72英寸; (1pt = 1/72in) | - 尝试一下 - |
pc | pica,大约6pt,1/6英寸; (1pc = 12 pt) | - 尝试一下 - |
像素或许被认为是最好的"设备像素",而这种像素长度和你在显示器上看到的文字屏幕像素无关。px实际上是一个按角度度量的单位。