CSS规范清楚的认识到,字体选择是一个常见而且很重要的特性,所以设置字体的属性就是样式表中最常见的用途之一。

字体相关的属性在CSS1就已经定义,CSS3又新增了font-stretch 和 font-size-adjust 这两个属性。

人们早已认识到字体选择很重要,并在CSS2就支持可下载字体,也定义了 @font-face 相关属性,但是并没有得到浏览器的广泛支持。直到CSS3,浏览器才开始支持 @font-face,使设计师可以在网页中使用自己喜欢的任意字体。

字体系列

在CSS中,通过 font-family属性来指定文本所使用的字体系列。语法格式为:

  1. font-family: [<family-name> | <generic-family>] #

其中,family-name为字体系列的名称;generic-family为通用字体系列的名称。也就是说,font-family属性的值既可以是具体的字体系列的名称,也可以是通用字体系列的名称。

CSS定义了 5 种通用字体系列,分别是serif、sans-serif、cursive、fantasy、monospace,font-family属性可用使用其中的任何一种。如果希望文档使用一种通用字体系列中的某个字体,但并不关心是哪一种具体的字体,使用通用字体系列就比较合适。如:

  1. body {
  2. font-family: sans-serif;
  3. }

这样,浏览器就会从 sans-serif 字体系列中选择一种字体,并将它应用到 body 元素。由于 font-family属性具有继承性,这种字体将会应用到 body 元素中的所有元素,除非有一种更特殊的选择器将其覆盖。

选择字体时,要尽量选择能够引人注目(特别是标题),并且容易阅读的字体。当然,设计师也可以选择使用特定的字体。假如设计师希望所有 h1 标题都使用 Georgia 字体,可以使用以下声明:

  1. h1 {
  2. font-family: Georgia;
  3. }

这会使浏览器对所有 h1 标题都使用 Georgia 字体。当然,这个规则是假设访问者的计算机上已经安装了该字体。并且,设计师总是希望使用任何想要的字体,遗憾的是,如果访问者的计算机上没有安装该字体,浏览器便会使用默认字体来显示 h1 标题。

不过,不必万念俱灰,通过结合特定字体和通用字体系列,可以创建与你预想相同的文档。可以使用以下规则,告诉浏览器使用 Georgia 字体(如果可用),如果 Georgia 字体不可用,就使用另外一种 serif 字体:

  1. h1 {
  2. font-family: Georgia, serif;
  3. }

这时,如果访问者的计算机上没有安装Georgia字体,但安装了 Times 字体,浏览器就会使用 Times。尽管 Times 与 Georgia 并不完全匹配,但至少足够接近。

出于这个原因,强烈建议在所有 font-family 规则中,都提供一个通用字体系列。这样一来,就提供了一条后路。

如果你对字体很熟悉,也可以在 font-family属性中指定想要的字体,并按优先顺序依次排列,中间用逗号分隔。如:

  1. body {
  2. font-family: Arial, SimSun, Helvetica, sans-serif;
  3. }

浏览器会根据这个列表,按顺序查找这些字体,如果访问者的计算机上安装了第一种字体,就可以正确显示。如果没有安装第一种字体,就自动切换到第二种、第三种字体,以此类推。如果所有字体都没有找到,就会从 sans-serif 字体系列中选择一种可用的字体。

利用这个特性,还可以实现英文和中文使用不同字体的效果。通常的做法是,把英文字体写在前面,中文字体写在后面。如:

  1. p {
  2. font-family: Arial, 'Microsoft YaHei'; /* Arial,微软雅黑 */
  3. }

这样,浏览器会优先使用 Arial 字体显示文本,由于中文字符不识别 Arial 字体,就会在后面的字体中继续查找,找到 Microsoft YaHei 字体后,便对中文应用该字体,这样,就达到了中文和英文使用不同字体的效果。

在指定字体时,如果字体名称中包含空格或中文或其他特殊字符,则要把整个字体名称用放在引号中,可以使用单引号,也可以使用双引号。并且,字体名称不区分大小写。

对于中文,有三种指定字体的方法:一种是直接使用中文字体名称,一种是使用英文字体名称,一种是使用字体的 unicode 码。但是,在CSS文档中定义字体时,如果直接书写中文,经常会出现乱码,或者在某些浏览器下字体不生效。一个常用的解决办法,是把中文字体名称转换为对应的英文字体名称或unicode 码。如,宋体的英文字体名称为 SimSun、unicode 码为 \5B8B\4F53,则可以写成:

  1. p {
  2. font-family: SimSun;
  3. }

也可以写成:

  1. p {
  2. font-family: "\5B8B\4F53";
  3. }

上述两种写法是等价的,可以自行选择。为了方便查阅,几种常用字体的中文名称、英文名称、unicode码的对照关系见表 3‑1。

表 3-1 常见字体对照表
中文名称 英文名称 unicode
新细明体 PMingLiU \65B0\7EC6\660E\4F53
细明体 MingLiU \7EC6\660E\4F53
标楷体 DFKai-SB \6807 \6977\4F53
黑体 SimHei \9ED1\4F53
宋体 SimSun \5B8B\4F53
新宋体 NSimSun \65B0\5B8B\4F53
仿宋 FangSong \4EFF\5B8B
楷体 KaiTi \6977\4F53
仿宋_GB23122 FangSong_GB2312 \4EFF\5B8B_GB2312
楷体_GB2312 KaiTi_GB2312 \6977\4F53_GB2312
微软正黑体 Microsoft JhengHei \5FAE\x8F6F\6B63\9ED1\4F53
微软雅黑 Microsoft YaHei \5FAE\8F6F\96C5\9ED1
华文细黑 STXihei \534E\6587\7EC6\9ED1
华文黑体 STHeiti \534E\6587\9ED1\4F53
华文楷体 STKaiti \534E\6587\6977\4F53
华文宋体 STSong \534E\6587\5B8B\4F53
华文仿宋 STFangsong \534E\6587\4EFF\5B8B
丽黑 ProLiHei Pro Medium \4E3D\9ED1 Pro
丽宋 ProLiSong Pro Light \4E3D\5B8B Pro
标楷体 BiauKai \6807\6977\4F53
隶书 LiSu \96B6\4E66
幼圆 YouYuan \5E7C\5706
华文细黑 STXihei \534E\6587\7EC6\9ED1
华文楷体 STKaiti \534E\6587\6977\4F53
华文宋体 STSong \534E\6587\5B8B\4F53
华文中宋 STZhongsong \534E\6587\4E2D\5B8B
华文仿宋 STFangsong \534E\6587\4EFF \5B8B
方正舒体 FZShuTi \65B9\6B63\8212\4F53
方正姚体 FZYaoti \65B9 \6B63\59DA\4F53
华文彩云 STCaiyun \534E\6587\5F69\4E91
华文琥珀 STHupo \534E\6587\7425\73C0
华文隶书 STLiti \534E\6587\96B6\4E66
华文行楷 STXingkai \534E\6587\884C\6977
华文新魏 STXinwei \534E\6587\65B0\9B4F

虽然CSS提供了备选字体的机制,但是,在CSS3之前,所有的字体都只能是Web安全字体(即预先安装在主流个人计算机操作系统中的字体的子集)。直到CSS3中@font-face的出现,这个问题才彻底得到解决。

说明:

虽然 font-family属性具有继承性,但有几个元素不会继承父元素的字体设置,其中有表单的select、textarea 和input 元素。不过,可以强制它们继承父元素的字体设置。代码如下:

  1. input, select, textarea {
  2. font-family: inherit;
  3. }

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

CSS 字体 font-family属性相关推荐

  1. 字体font复合属性

    目前自学HTML,CSS,JavaScript,以后会不定时更新学习笔记,和大家一起交流学习! 今天介绍一下字体font相关属性的连写 属性名:font(复合属性) 取值:    font:style ...

  2. CSS字体的font-family属性和@font-face使用方法

    CSS字体的font-family属性: font-family属性一共有5个字体系列,分别是: sans-serif: 包括没有衬线的字体,与serif相比,通常认为sans-serif在计算机屏幕 ...

  3. CSS初识(三):CSS字体文本相关属性

    属性 CSS属性有很多,不过常用的并不多,大概30个左右.请注意区别CSS属性和HTML属性. 按照功能大致分为以下几类: 字体有关属性 font-size: 设置字体大小,单位是px(像素):一些不 ...

  4. CSS字体、文本属性、CSS 盒模型

    1.css字体 1.1 font-family 作用:设置文本的字体系列 语法:font-family:字体名称: 常用值 一个字体名称或系列名称(介绍常用字体名称.字体系列) 1.楷体 KaiTi ...

  5. CSS -- CSS字体及文本属性设置总结

    文章目录 1 CSS字体属性 1.1 字体系列 1.2 字体大小 1.3 字体粗细 1.4 文字样式 1.5 字体复合属性 1.6 字体属性总结 2 CSS文本属性 2.1 文本颜色 2.2 对齐文本 ...

  6. CSS字体 ,文本属性

    一.CSS字体 1. font-family 作用:设置文本的字体系列 语法:font-family:字体名称: 常用值: 一个字体名称或系列名称(介绍常用字体名称.字体系列) 微软雅黑 Micros ...

  7. css字体(font)样式总结

    1.font-size:设置字体大小 写法: p {       font-size:20px;  } PS:谷歌浏览器默认的文字大小为16px,但是不同浏览器可能默认显示的字号大小不一致,我们尽量给 ...

  8. css之font各种属性

    网页默认字体样式在不同的浏览器里表现的往往不一致,浏览器最终呈现出的样式受三层控制: 浏览器默认样式: 网页定义样式: 用户自定义样式: 优先级为3 > 2 > 1,即用户自定义样式可以覆 ...

  9. CSS 字体(font)实例

    1.设置文本字体 font-family:"Times New Roman",Georgia,Serif font-family:Arial,Verdana,Sans-serif ...

  10. CSS 字体调整 font-size-adjust属性

    设计师也会经常遇到一种情况,就是精心设计好的页面,如果改变字体的种类,页面上使用该字体的文本尺寸将发生变化,从而导致原来安排好的页面产生混乱,这是设计者不愿意看到的结果. 一种字体的 x-height ...

最新文章

  1. Win7系统下hosts文件修改后无法保存
  2. Algorithms_基础数据结构(01)_线性表之数组数组的应用案例分析
  3. asp.net 服务器控件的 ID,ClientID,UniqueID 的区别
  4. matlab制作打地鼠游戏,scratch编程制作打地鼠的游戏教程
  5. 做了一个画f(x,y)=0函数图像的算法,果断codeplex之
  6. 日语学习-多邻国-人
  7. php开发大型网站如何优化,PHP编写大型网站问题
  8. mysql 修改最大连接数
  9. js 程序执行与顺序实现详解
  10. pytorch中的反卷积的output_padding参数
  11. html 多选框 下拉,一个模拟html下拉多选框的原生实现.
  12. 强大的图表制作,前端数据可视化,echarts
  13. 不踩雷不将就 京东智能产品30天无忧退
  14. Tolua for Unity3d 编译字节码
  15. 力扣每日一题2021-09-17有效的数独
  16. 怎么知道跟交换机互联的交换机_电话交换机日常怎么维护和保养?
  17. 寒江独钓 第二章 课后习题
  18. php面包屑源码,推荐两款好用的WordPress面包屑插件
  19. python从右向左第三个字符_字符串是一个字符序列,例如,字符串s,从右侧向左第3个字符用什么索引?_学小易找答案...
  20. Lpa* 源码 原理

热门文章

  1. 东华大学python题库_2020尔雅纺纱学(东华大学)完整答案
  2. 转移到ios下载安卓_转移到ios下载-转移到ios app下载v2.10.0 安卓最新版-2265安卓网...
  3. python写词法分析器_python实现词法分析器
  4. 侵犯我的肖像权及其严重!!强烈禁止使用本人真实头像!!
  5. 学习:通用软件滤波算法-前序
  6. Altium Designer19 生成Gerber文件方法
  7. ipad分屏功能怎么开启_win10录屏功能怎么开启
  8. Confluence OGNL表达式注入漏洞复现与分析(CVE-2022-26134)
  9. 图灵聊天机器人小程序
  10. 专访方立勋:开发者应该保持好奇和热情