[前端笔记——CSS] 15.样式化文本
1.基础文本与字体样式化
用于样式文本的 CSS 属性通常可以分为两类:
- 字体样式:
作用于字体的属性,会直接应用到文本中,比如使用哪种字体,字体的大小是怎样的,字体是粗体还是斜体,等等。 - 文本布局风格
作用于文本的间距以及其他布局功能的属性,比如,允许操纵行与字之间的空间,以及在内容框中,文本如何对齐。
1.1 字体样式
颜色:
color 属性设置选中元素的前景内容的颜色 (通常指文本,不过也包含一些其他东西),或者是使用 text-decoration 属性放置在文本下方或上方的线 (underline overline)。
color 也可以接受任何合法的 CSS 颜色单位, 比如:
p {
color: red;
}
字体种类:font-family 属性允许为浏览器指定一个字体 (或者一个字体的列表),然后浏览器可以将这种字体应用到选中的元素上。浏览器只会把在当前机器上可用的字体应用到当前正在访问的网站上;如果字体不可用,那么就会用浏览器默认的字体代替 default font.
p {
font-family: arial;
}
网页安全字体有以下几种:
CSS 定义了 5 个常用的字体名称:serif, sans-serif, monospace, cursive, 和 fantasy. 这些都是非常通用的,当使用这些通用名称时,使用的字体完全取决于每个浏览器,而且它们所运行的每个操作系统也会有所不同。五个名称定义如下:
字体栈:
由于无法保证你想在网页上使用的字体的可用性 (甚至一个网络字体可能由于某些原因而出错), 我们可以提供一个字体栈 (font stack),这样的话,浏览器就有多种字体可以选择了。只需包含一个 font-family 属性,其值由几个用逗号分离的字体名称组成。比如
p {
font-family: "Trebuchet MS", Verdana, sans-serif;
}
在这种情况下,浏览器从列表的第一个开始,然后查看在当前设备中,这个字体是否可用。如果可用,就把这个字体应用到选中的元素中。如果不可用,它就移到列表中的下一个字体,然后再检查。
有一些字体名称不止一个单词,比如Trebuchet MS ,那么就需要用引号包裹。
字体大小:
在调整字体大小时,最常用的单位是:
- px (像素): 将像素的值赋予给你的文本。这是一个绝对单位,它导致了在任何情况下,页面上的文本所计算出来的像素值都是一样的。
- em: 1em 等于我们设计的当前元素的父元素上设置的字体大小。如果有大量设置了不同字体大小的嵌套元素,这可能会变得棘手。
- rem: 这个单位的效果和 em 差不多,只不过1rem 等于 HTML 中的根元素的字体大小。
字体样式、字体粗细、文本转换和文本装饰:
CSS 提供了 4 种常用的属性来改变文本的样子:
-
font-style: 用来打开和关闭文本 italic (斜体)。可能的值如下 (很少会用到这个属性,除非有理由想将斜体文字关闭斜体状态):
(1)normal:将文本设置为普通字体 (将存在的斜体关闭)
(2)italic: 如果当前字体的斜体版本可用,那么文本设置为斜体版本;如果不可用,那么会利用 oblique 状态来模拟 italics。
(3)oblique: 将文本设置为斜体字体的模拟版本,也就是将普通文本倾斜的样式应用到文本中。 -
font-weight: 设置文字的粗体大小。这里有很多值可选 (比如 -light, -normal, -bold, -extrabold, -black, 等等), 不过事实上很少会用到 normal 和 bold以外的值:
(1)normal, bold: 普通或者加粗的字体粗细
(2)lighter, bolder: 将当前元素的粗体设置为比其父元素粗体更细或更粗一步。100–900: 数值粗体值,如果需要,可提供比上述关键字更精细的粒度控制。 -
text-transform: 允许并要转换的字体。值包括
(1)none: 防止任何转型。
(2)uppercase: 将所有文本转为大写。
(3)lowercase: 将所有文本转为小写。
(4)capitalize: 转换所有单词让其首字母大写。
(5)full-width: 将所有字形转换成全角,即固定宽度的正方形,类似于等宽字体,允许拉丁字符和亚洲语言字形(如中文,日文,韩文)对齐。 -
text-decoration: 设置/取消字体上的文本装饰 (你将主要使用此方法在设置链接时取消设置链接上的默认下划线。) 可用值为:
(1)none: 取消已经存在的任何文本装饰。
(2)underline: 文本下划线。
(3)overline: 文本上划线
(4)line-through: 穿过文本的线。
文字阴影:
可以为你的文本应用阴影,使用 text-shadow 属性。这最多需要 4 个值,如下例所示:
text-shadow: 4px 4px 5px red;
4 个属性如下:
- 阴影与原始文本的水平偏移,可以使用大多数的 CSS 单位 length and size units, 但是 px 是比较合适的。这个值必须指定。
- 阴影与原始文本的垂直偏移;效果基本上就像水平偏移,除了它向上/向下移动阴影,而不是左/右。这个值必须指定.
- 模糊半径 - 更高的值意味着阴影分散得更广泛。如果不包含此值,则默认为 0,这意味着没有模糊.
- 阴影的基础颜色,可以使用大多数的 CSS 颜色单位 CSS color unit. 如果没有指定,默认为 black.
多种阴影:
可以通过包含以逗号分隔的多个阴影值,将多个阴影应用于同一文本,例如:
text-shadow: -1px -1px 1px #aaa,
0px 4px 1px rgba(0,0,0,0.5),
4px 4px 5px rgba(0,0,0,0.7),
0px 0px 7px rgba(0,0,0,0.4);
1.2 文本布局
文本对齐:
text-align 属性用来控制文本如何和它所在的内容盒子对齐。可用值如下,并且在与常规文字处理器应用程序中的工作方式几乎相同:
- left: 左对齐文本。
- right: 右对齐文本。
- center: 居中文字。
- justify: 使文本展开,改变单词之间的差距,使所有文本行的宽度相同。
行高:
line-height 属性设置文本每行之间的高。也可以设置一个无单位的值,作为乘数,通常这种是比较好的做法。无单位的值乘以 font-size 来获得 line-height。当行与行之间拉开空间,正文文本通常看起来更好更容易阅读。推荐的行高大约是 1.5–2 (双倍间距。) 例如:
line-height: 1.5;
字母和单词间距:
letter-spacing 和 word-spacing 属性设置文本中的字母与字母之间的间距、或是单词与单词之间的间距。可以通过它们,来获得一个特定的外观,或者让较为密集的文字更加可读。
p::first-line {
letter-spacing: 2px;
word-spacing: 4px;
}
1.3 其他一些值得看一下的属性
Font 样式:
文本布局样式:
1.4 Font 简写
许多字体的属性也可以通过 font 的简写方式来设置 . 这些是按照以下顺序来写的: font-style, font-variant, font-weight, font-stretch, font-size, line-height, and font-family. 在所有这些属性中,只有 font-size 和 font-family 是一定要指定的。
font-size 和 line-height 属性之间必须放一个正斜杠。举个例子:
font: italic normal bold normal 3em/1.5 Helvetica, Arial, sans-serif;