这一篇讲解在 CSS 中与字体和文本相关的属性。
font 和 text 相关属性
- font
- font-family
- font-size
- font-weight
- font-style
- font-variant
- font简写
- text
- color
- text-indent
- letter-spacing
- word-spacing
- text-decoration
- text-align
- vertical-align
- line-height

font-family
font-family 定义了页面所使用的字体。
font-family: "Source Sans Pro", "Arial", sans-serif;
|
当使用多个值时,font-family 属性值字体列表定义浏览器应选择字体系列的优先级。
浏览器将在用户的计算机或者任何 @font-face 资源中查找每个字体。
所使用的字体优先级按从左到右的排序: 如果可用,它将使用第一个值,否则跳到下一个值,直到最后。默认字体系列由浏览器首选项定义。
在上面的示例中,浏览器将首先尝试使用 Source Sans Pro。如果不可用,它会尝试使用 Arial。如果也不可用,它将使用浏览器的 sans-serif 字体族中的可用字体。

5 种字体族





font-size
font-size 定义了页面字体尺寸,浏览器默认使用字体尺寸为 medium 关键字。
6 种 font-size 可用取值


- rem: 相对于根元素的 font-size(即 html 元素)

- 百分数(percentage): 相对于父元素的 font-size

- 相对关键字(relative-keywords): 相对于父元素的 font-size
可用关键字:
- larger
- smaller

- 绝对关键字(absolute-keywords): 相对于根元素的 font-size(即 html 元素)
可用关键字:
- xx-larger
- x-large
- large
- medium
- small
- x-small
- xx-small

font-style
font-style 定义字体样式。
还有两个之可选:
均为斜体。
font-weight
font-weight 定义字重。
3 种 font-weight 可用取值
- Thin
- Extra Light
- Light
- Normal
- Medium
- Semi Bold
- Bold
- Extra Bold
- Ultra Bold
- 100 对应 Thin
- 200 对应 Extra Light
- 300 对应 Light
- 400 对应 Normal
- 500 对应 Medium
- 600 对应 Semi Bold
- 700 对应 Bold
- 800 对应 Extra Bold
- 900 对应 Ultra Bold
- lighter
- bolder
浏览器会选择下一个可用字重。
font-variant
font-variant 定义了所使用的字形,normal 为浏览器默认取值。
还有一个值可选:
font 简写
注意 font 所有属性都是可继承的属性。
font: bold italic 18px Simsun,sans-serif;
|
font简写属性要求:
- 必须同时包含 font-size 和 font-family 属性,且 font-size 在 font-family 之前。
- 如果有其他 font 相关属性,必须放在 font-size 之前。
color
color 属性定义元素前景色。(边框,文本等)
7 种可选取值
color: rgb(50, 115, 220);
|
color: rgba(0, 0, 0, 0.5);
|
color: hsl(14, 100%, 53%);
|
color: hsla(14, 100%, 53%, 0.6);
|
text-indent
text-indent 属性定义文本缩进。
可以使用 pixel,em,rem,percentage 等。
可以使用负值。
letter-spacing
letter-spacing 属性定义字符间距,normal 为浏览器默认取值。
3 种可选取值



word-spacing
word-spacing 属性定义单词间距,0px 为浏览器默认取值。
3 种可选取值



line-height
line-height 属性定义单行文本高度。
4 种可选取值
- unitless: 行高相对于 font-size
单行文本垂直居中只需要设置 height 和 line-height 相同即可。
注意: line-height 属性也可以放到 font 简写属性里,写法为在 font-size 后加一个 / ,再跟 line-height 的值。
font: bold italic 18px/1.5 Simsun,sans-serif;
|
text-decoration
text-decoration 属性定义文本装饰线样式。
4 种可选取值
text-decoration: underline;
|
text-decoration: line-through;
|
text-decoration: overline;
|
text-overflow
text-overflow 属性定义文本溢出时的行为。
2 种可选取值
text-transform
text-transform 属性定义文本内容变换。
4 种可选取值
text-transform: capitalize;
|
text-transform: uppercase;
|
text-transform: lowercase;
|
text-align
text-align 属性作用于块级元素,控制其内部行内内容(如文本或行内元素等)对齐方式。是可继承属性。
4 种可选取值



justify 只对多行文本有效,且多行文本的最后一行无效。要想对最后一行有效需要使用 text-align-last: justify; 或使用伪元素::after 把最后一行变为非最后一行
vertical-align
vertical-align 属性定义了一个行内元素如何垂直对齐。
8 种可选取值
vertical-align: baseline;
|
vertical-align: text-top;
|
vertical-align: text-bottom;
|