字体和文本

字体是“文字的不同体式”或者“字的形体结构”。对于英文而言,每种字体都是由一组具有独特样式的字母、数字和符号组成的。

文本就是一组字或字符,比如章标题、段落正文等等,跟使用什么字体无关。

字体属性

网页中的字体有三个来源:

  • 用户机器中安装的字体;
  • 保存在第三方网站上的字体;
  • 保存在你的Web服务器上的字体。

font-family

font-family用于设定元素中的文本使用什么字体,它是可以继承的属性,因此它的值会遗传给所有后代元素。一般来说,应该给整个页面设定一种主字体,然后只对那些需要使用不同字体的元素再应用font-family。要为整个页面指定字体,可以设定<body>元素的font-family属性。

1
body { font-family: verdana, sans-serif; }

用户机器上的字体是随操作系统一起安装的,可以由本地应用共享。每种操作系统自带的字体不多,而且用户随时会安装或删除字体,因此我们永远也不敢保证一定能使用某种字体来显示网页。为此,在指定文本的字体时,需要多列出几种后背字体,以防第一种字体无效。这个字体的列表也叫字体栈。

font-size

  1. font-size属性是可继承的
  2. 设定字体大小时可以使用:
    • 绝对单位:px
    • 相对单位:百分比、emrem
    • 关键字:x-smallmediumx-large
  3. 如果你给某个元素设定了相对字体大小,则该元素的字体大小要相对于最近的“被设定过字体大小”的祖先元素来确定。rem单位比较特殊,它只是相对于<html>根元素

font-style

font-style设定字体是斜体还是正体,它的值有:italic(斜体)、oblique(正体)和normal

font-weight

font-weight设定字体粗细,它的值可以是:100200900,或者lighternormalboldbolder

font-variant

font-variant的值只能是:small-capsnormalsmall-caps会让小写英文字母变为小型大写字母

font

  • font是字体的简写属性
  • 使用font时必须声明font-sizefont-family的值
  • 使用font时必须按照如下顺序:
    1. font-weightfont-stylefont-variant不分先后
    2. 然后是font-size
    3. 最后是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属性的值:underlineoverlineline-throughblinknone

text-align

  • text-align属性的值:leftrightcenterjustify
  • center值也可以用来在较大的元素中居中较小的固定宽度的元素或图片

line-height

  • line-height属性用于指定文本的行高
  • 如果line-height的值是不包含单位的数值,那么行高就是数值 * 字体大小

text-transform

text-transform属性的值:noneuppercaselowercasecapitalize

vertical-align

vertical-align属性的值:subsupertopmiddlebottom或任意长度值

word-break

word-break属性的值:normalbreak-allkeep-allbreak-word

text-overflow

  • text-overflow属性的值:clipellipsis<string>
  • text-overflow属性只对那些在块级元素溢出的内容有效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Overflow behavior at line end
Right end if ltr, left end if rtl */
text-overflow: clip;
text-overflow: ellipsis;
text-overflow: "…";
text-overflow: fade;
text-overflow: fade(10px);
text-overflow: fade(5%);

/* Overflow behavior at left end | at right end
Directionality has no influence */
text-overflow: clip ellipsis;
text-overflow: "…" "…";
text-overflow: fade clip;
text-overflow: fade(10px) fade(10px);
text-overflow: fade(5%) fade(5%);

/* Global values */
text-overflow: inherit;
text-overflow: initial;
text-overflow: unset;

white-space

  • white-space属性的值:normalnowrapprepre-wrappre-line
  • white-space属性只对那些在块级元素溢出的内容有效

white-space

text-shadow

  1. text-shadow: <offset-x> <offset-y> <blue-radius> <color>
    • <offset-x>(必选):阴影水平偏移量
    • <offset-y>(必选)):阴影垂直偏移量
    • <blue-radius>(可选):该值越大,阴影面积越大,阴影就越大越淡。不能为负值。默认为0,此时阴影边缘锐利
    • <color>(可选):颜色。默认颜色由浏览器决定
  2. 如果想设置多个阴影,则不同阴影规则之间需要使用逗号分隔

文字版式

具体的文字版式设计可以看《CSS权威指南》的4.4节



感谢您的阅读,如果发现文章中有错误或漏洞,请批评指正。
邮箱:aadonkeyz@gmail.com

0%