字体是“文字的不同体式”或者“字的形体结构”。对于英文而言,每种字体都是由一组具有独特样式的字母、数字和符号组成的。
文本就是一组字或字符,比如章标题、段落正文等等,跟使用什么字体无关。
字体属性
网页中的字体有三个来源:
- 用户机器中安装的字体;
- 保存在第三方网站上的字体;
- 保存在你的Web服务器上的字体。
font-family
font-family
用于设定元素中的文本使用什么字体,它是可以继承的属性,因此它的值会遗传给所有后代元素。一般来说,应该给整个页面设定一种主字体,然后只对那些需要使用不同字体的元素再应用font-family
。要为整个页面指定字体,可以设定<body>
元素的font-family
属性。
1 | body { font-family: verdana, sans-serif; } |
用户机器上的字体是随操作系统一起安装的,可以由本地应用共享。每种操作系统自带的字体不多,而且用户随时会安装或删除字体,因此我们永远也不敢保证一定能使用某种字体来显示网页。为此,在指定文本的字体时,需要多列出几种后背字体,以防第一种字体无效。这个字体的列表也叫字体栈。
font-size
font-size
属性是可继承的- 设定字体大小时可以使用:
- 绝对单位:
px
- 相对单位:百分比、
em
、rem
- 关键字:
x-small
、medium
、x-large
等
- 绝对单位:
- 如果你给某个元素设定了相对字体大小,则该元素的字体大小要相对于最近的“被设定过字体大小”的祖先元素来确定。
rem
单位比较特殊,它只是相对于<html>
根元素
font-style
font-style
设定字体是斜体还是正体,它的值有:italic
(斜体)、oblique
(正体)和normal
font-weight
font-weight
设定字体粗细,它的值可以是:100
、200
…900
,或者lighter
、normal
、bold
或bolder
font-variant
font-variant
的值只能是:small-caps
和normal
。small-caps
会让小写英文字母变为小型大写字母
font
font
是字体的简写属性- 使用
font
时必须声明font-size
和font-family
的值 - 使用
font
时必须按照如下顺序:font-weight
、font-style
、font-variant
不分先后- 然后是
font-size
- 最后是
font-family
- 实际上,在设定
font-size
属性的同时,可以顺便设定line-height
的值,如12px/1.5
文本属性
text-indent
text-indent
属性设定行内盒子相对于包含元素的起点。默认情况下,这个起点就是包含元素的左上角text-indent
的值可正、可负text-indent
属性是可以被继承的,它继承的是经过计算之后的绝对值
letter-spacing
letter-spacing
属性用于调整字符间距,为负值时缩小间距。无论设定字体大小时使用的是什么单位,设定字符间距一定要用相对单位,以便字符间距跟随字体大小同比例变化
word-spacing
word-spacing
属性用于调整单词间距
text-decoration
text-decoration
属性的值:underline
、overline
、line-through
、blink
、none
text-align
text-align
属性的值:left
、right
、center
、justify
center
值也可以用来在较大的元素中居中较小的固定宽度的元素或图片
line-height
line-height
属性用于指定文本的行高- 如果
line-height
的值是不包含单位的数值,那么行高就是数值 * 字体大小
text-transform
text-transform
属性的值:none
、uppercase
、lowercase
、capitalize
vertical-align
vertical-align
属性的值:sub
、super
、top
、middle
、bottom
或任意长度值
word-break
word-break
属性的值:normal
、break-all
、keep-all
、break-word
text-overflow
text-overflow
属性的值:clip
、ellipsis
、<string>
text-overflow
属性只对那些在块级元素溢出的内容有效
1 | /* Overflow behavior at line end |
white-space
white-space
属性的值:normal
、nowrap
、pre
、pre-wrap
、pre-line
white-space
属性只对那些在块级元素溢出的内容有效
text-shadow
text-shadow: <offset-x> <offset-y> <blue-radius> <color>
:<offset-x>
(必选):阴影水平偏移量<offset-y>
(必选)):阴影垂直偏移量<blue-radius>
(可选):该值越大,阴影面积越大,阴影就越大越淡。不能为负值。默认为0
,此时阴影边缘锐利<color>
(可选):颜色。默认颜色由浏览器决定
- 如果想设置多个阴影,则不同阴影规则之间需要使用逗号分隔
文字版式
具体的文字版式设计可以看《CSS权威指南》的4.4节