font-family字体与字体族

2019年07月26日Web前端

字体有成千上万中,但在一张网页中,我们往往只会取选择一种或几种字体。有时为了能够显示开发者想要的类似字体,常会用到字体族。

字体来源

网页中显示的字体来自哪呢?主要有以下两个来源。

操作系统的字体库

以window为例,在C盘中Windows/Fonts文件夹下,存放着系统中的字体。网页中若设置了对应的字体,则会用对应的字体库显示。

font-face

css3中允许开发者加载自己的字体库。

font-family

font-family用于给网页设置字体,他允许多个字体名称,不支持第一个字体就尝试下一个的方式。然后一般在font-family的后面常常见到以下几个字体,serif、sans-serif等,这几个就是这节的主题,字体族。

serif

serif,衬线体,意为有衬线的字体,衬线的意思是在字符笔画末端有叫做衬线的小细节的额外装饰。 常用字体属于衬线体有:

  • 宋体、仿宋
  • Times New Roman

sans-serif

sans-serif,无衬线体,与衬线字体相反,该类字体通常是机械的和统一线条的,具有笔画清晰的末端,没有向外展开的,或者其它装饰。 常用字体属于无衬线体有:

  • 黑体、楷体
  • Helvetica

cursive

cursive,草体,手写体。 常用字体属于草体的有:

  • 华文行草

fantasy

fantasy,梦幻体,主要用于艺术字。

monospace

monospace,等宽字体,字母字体宽度相同的字体,码农写代码常用的字体,看着贼舒服。 个人比较喜欢用的是Monaco字体。

demo

来看下淘宝页面的font-family设置,

12px/1.5 tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif

忽略前面的字体大小和line-height。

第一个字体是tahoma,在Fonts文件夹下也能搜到。

\5b8b\4f53是宋体的unicode 编码,最后,则以sans-serif字体族结束,兼容低版本浏览器。

总结

中文字体名

刚也看到了,为了防止字符编码解析成乱码的问题,需要用unicode 编码表示。

字体顺序

字体设置要兼顾中英文,由于大部分中文字体也是带有英文部分的,但是英文部分又不怎么好看,同时英文字体中大多不包含中文,所以最优先设置英文字体,其后是中文字体。 最后为了保证整体字体的兼容性,需要设置如serif 和sans-serif这些字体族。

字体名引号

当字体名字中间有空格,中文或 Unicode 字符编码表示的中文字体时,为了保证兼容性,带上引号。