CSS 单位 详解
CSS 单位
CSS 单位
CSS 有几种表示长度的不同单位。
许多 CSS 属性接受“长度”值,诸如 width
、margin
、padding
、font-size
等。
长度是一个后面跟着长度单位的数字,诸如 10px
、2em
等。
示例代码:
使用 px(像素)设置不同的长度值:
h1 {
font-size: 60px;
}
p {
font-size: 25px;
line-height: 50px;
}
完整实例【亲自试一试】:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
font-size: 60px;
}
p {
font-size: 25px;
line-height: 50px;
}
</style>
</head>
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
数字和单位之间不能出现空格。但是,如果值为 0,则可以省略单位。
对于某些 CSS 属性,允许使用负的长度。
长度单位有两种类型:绝对单位和相对单位。
绝对长度
绝对长度单位是固定的,用任何一个绝对长度表示的长度都将恰好显示为这个尺寸。
不建议在屏幕上使用绝对长度单位,因为屏幕尺寸变化很大。但是,如果已知输出介质,则可以使用它们,例如用于打印布局(print layout)。
单位 | 描述 | TIY |
---|---|---|
cm | 厘米 | 试一试 |
mm | 毫米 | 试一试 |
in | 英寸 (1in = 96px = 2.54cm) | 试一试 |
px * | 像素 (1px = 1/96th of 1in) | 试一试 |
pt | 点 (1pt = 1/72 of 1in) | 试一试 |
pc | 派卡 (1pc = 12 pt) | 试一试 |
* 像素(px)是相对于观看设备的。对于低 dpi 的设备,1px 是显示器的一个设备像素(点)。对于打印机和高分辨率屏幕,1px 表示多个设备像素。
相对长度
相对长度单位规定相对于另一个长度属性的长度。相对长度单位在不同渲染介质之间缩放表现得更好。
单位 | 描述 | TIY |
---|---|---|
em | 相对于元素的字体大小(font-size)(2em 表示当前字体大小的 2 倍) | 试一试 |
ex | 相对于当前字体的 x-height(极少使用) | 试一试 |
ch | 相对于 "0"(零)的宽度 | 试一试 |
rem | 相对于根元素的字体大小(font-size) | 试一试 |
vw | 相对于视口*宽度的 1% | 试一试 |
vh | 相对于视口*高度的 1% | 试一试 |
vmin | 相对于视口*较小尺寸的 1% | 试一试 |
vmax | 相对于视口*较大尺寸的 1% | 试一试 |
% | 相对于父元素 | 试一试 |
提示:em 和 rem 单元可用于创建完美的可扩展布局!
* 视口(Viewport)= 浏览器窗口的尺寸。如果视口为 50 厘米宽,则 1vw = 0.5 厘米。
浏览器支持
表格中的数字注明了完全支持该长度单位的首个浏览器版本。
长度单位 | |||||
---|---|---|---|---|---|
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 | 12.0 | 19.0 | 6.0 | 20.0 |
vmax | 26.0 | 16.0 | 19.0 | 7.0 | 20.0 |
完整实例1:
<!DOCTYPE html>
<html>
<head>
<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>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例2:
<!DOCTYPE html>
<html>
<head>
<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>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例3:
<!DOCTYPE html>
<html>
<head>
<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>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例4:
<!DOCTYPE html>
<html>
<head>
<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>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例5:
<!DOCTYPE html>
<html>
<head>
<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>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例6:
<!DOCTYPE html>
<html>
<head>
<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>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例7:
<!DOCTYPE html>
<html>
<head>
<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>这些段落的 line-height 这样计算:2x16px = 32px。</p>
<p>这些段落的 line-height 这样计算:2x16px = 32px。</p>
<p>这些段落的 line-height 这样计算:2x16px = 32px。</p>
<div>这个 div 元素的 font-size 被设置为 30px。<span>div 元素内部的 span 元素的 font-size 为 0.5em,其等于 0.5x30 = 15px。</span></div>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例8:
<!DOCTYPE html>
<html>
<head>
<style>
div {
font-size: 30px;
border: 1px solid black;
}
span {
font-size: 1ex;
}
</style>
</head>
<body>
<div>这个 div 元素的 font-size 被设置为 30px。<span>div 元素内部的 span 元素的 font-size 为 1ex。</span></div>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例9:
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-size:16px;
}
div {
font-size: 3ch;
border: 1px solid black;
}
</style>
</head>
<body>
<p>此文档的 font-size 是 16px。</p>
<div>这个 div 元素的 font-size 是 3ch。</div>
<p>ch 单位设置相对于字符 "0" 宽度的 font-size。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例10:
<!DOCTYPE html>
<html>
<head>
<style>
html {
font-size:16px;
}
div {
font-size: 3rem;
border: 1px solid black;
}
#top-div {
font-size: 2rem;
border: 1px solid red;
}
</style>
</head>
<body>
<p>此文档的 font-size 是 16px。</p>
<div id="top-div">
这个 div 的 font-size 为 2rem,转换为浏览器字体大小的2倍。
<div>这个 div 元素的 font-size 为 3rem。它同时也展示出不会继承其父元素的字体尺寸。</div>
</div>
<p>rem 单位设置的 font-size 相对于浏览器的基准字体尺寸,并不从其父元素继承。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例11:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
font-size: 20vw;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>请调整浏览器窗口的宽度,来查看 h1 的字体大小如何变化。</p>
<p>1vw = 1% 的视口宽度。</p>
<p>IE8 以及更早的版本不支持 vw 单位。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例12:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
font-size: 20vh;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>请调整浏览器窗口的高度,来查看 h1 的字体大小如何变化。</p>
<p>1vh = 1% 的视口宽度。</p>
<p>IE8 或更早的版本不支持 vh 单位。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例13:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
font-size: 15vmin;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>请调整浏览器窗口的大小(宽度和高度),来查看 h1 的字体大小如何变化。</p>
<p>1vmin = 1vw 或 1vh,以较小者为准。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例14:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
font-size: 15vmax;
}
</style>
</head>
<body>
<h1>Hello</h1>
<p>Re请调整浏览器窗口的大小(宽度和高度),来查看 h1 的字体大小如何变化。</p>
<p>1vmax = 1vw 或 1vh,以较大者为准。</p>
<p>Edge 15 或更早的版本不支持 vmax 单位,Safari 6.1 或更早的版本也不支持。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html
完整实例15:
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-size:16px;
}
div {
font-size: 150%;
border: 1px solid black;
}
</style>
</head>
<body>
<p>此文档的 font-size 为 16px。</p>
<div>这个 div 元素的 font-size 是 150%。</div>
<p>% 单位设置相对于当前 font-size 的字体尺寸。</p>
</body>
</html>
可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html