《CSS 权威指南(第三版)》阅读随笔
CSS 中规范了字体的大小、倾斜、加粗、字体等属性,下面先看一下字体属性。
字体系列
在不同计算机系统平台,比如 window、macOS、linux、unix 等下,会存在差异化的字体库,即使在相同平台下,不同 web 代理浏览器也会存在差异,因此在设置字体方面,很难做到大一统。虽然没有彻底统一的字体标准,但 CSS 语言还是在一定程度上相对统一了一些规范,产生了一些比较通用的字体比如 serif、san-serif、Monospace、Cursive、Fantasy 等,只需设置 CSS 的 font-family 属性,即可设置相应的字体。比如:
body { font-family: serif; }
当然,差异化的字体,诸如 Geogria 等也可以通过该属性来配置:
body { font-family: Geogria; }
在字体不可用的情况下,代理会设置为系统默认字体取代。另外,也可以通过下载字体的方式来引入外部字体,不过该方式会损耗掉一部分性能,因此不推荐。
在使用 font-family 时,规范了一些用法,需要注意:
字体兼容
当预设的 font-family 字体代理无法识别时,还可以退而求其次,再预留另一个字体作为备选。比如不是任何平台都有 Geagria 字体,但是几乎都会有 serif 字体:
body { font-family: Geogria,serif; }
多字体兼容
当然,可以预留不只一种字体,其余打算预留的字体都可以通过逗号间隔来配置,在执行时,代理会按顺序依次进行匹配,优先配置靠前的字体:
body { font-family: Geogria,Times,serif; }
引号规则
对于预设字体,如果其命名存在空格或者特殊符号,诸如 $、# 等,均需要加引号处理,否则代理会忽略孩字体:
body { font-family: 'New York',serif; }
引号冲突规则
另外,如果 font-family 属性放在页面标签中配置时,需要主要避免与设置 style 属性的引号发生冲突:
<p style="font-family:'New York',serif;">
CSS Style1
</p>
<p style='font-family:"New York",serif;'>
CSS Style2
</p>