您的位置:

CSS字体控制之font-family使用详解

一、什么是font-family

在CSS中,font-family用来设置元素的字体,它控制的是一个元素文字显示的字体,比如下面的代码:

    p {
        font-family: Arial, sans-serif;
    }

这行 CSS 代码的作用是为 p 元素设置字体,其基本语法为:

    选择器 {
        font-family: 字体名称;
    }

font-family对应的属性值是一个由字体名称和字体族名组成的列表,该列表以优先顺序列出,每个成员由逗号分隔。在大多数情况下,字体族名和字体名称是等同的。对于一个不存在于此列表中的字体,浏览器将会使用第一个备选字体中的字体进行替代。

二、font-family的常见值

1. 指定系统字体

想要元素使用特定的字体,可以通过两种方式实现:

(1)使用通用字体族名

通用字体族名包括:"serif"、"sans-serif"、"monospace"、"cursive"以及"fantasy"等。它们是表示特定类型字体的重要关键词,浏览器会根据指定的关键词选择一下子列表中的对应字体来显示。

例如,我们给p元素设定如下CSS样式:

    p {
        font-family: serif;
    }

就会在浏览器中显示一个衬线字体的序列,比如Times或Georgia。

(2)指定特定字体名称

可以使用字体名称来指定字体,例如:

    p {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    }

在上面的代码中,为了使某些特定用户使用Helvetica Neue字体,使用了引号把字体名称改成了具体的文字。

2. 引入自定义字体

除了系统字体以外,你可能还需要使用自定义的字体,如公司logo中的某个特定字体。为了完成这一操作,需要用到@font-face规则进行定义,在网站内部加载自定义的字体文件。

例如,我们想要使用自定义字体 "Myriad Pro",就可以通过以下代码来引入字体文件:

    @font-face {
        font-family: "Myriad Pro";
        src: url("myriadpro.ttf");
    }
    body {
        font-family: "Myriad Pro", Arial, sans-serif;
    }

该片 CSS 代码定义了一个名为 "Myriad Pro" 的字体,该字体加载自存储在CSS文件同一个目录下的 "myriadpro.ttf" 文件中。CSS代码说明,为页面中所有从body元素继承的元素,设置字体 "Myriad Pro",但如果无法加载该字体时,则使用 Arial 或 sans-serif 作为后备字体族。

三、font-family注意事项

1. 字体大小和font-family

font-size和font-family是影响文字展示的最两个重要参数,使用不当会使得文字在不同设备、不同分辨率下出现错乱。

(1)字体的大小单位

字体大小的值可以使用像素、em、rem等单位。其中像素单位无论在哪个屏幕都是固定的,而em和rem则会随着页面上下文的变化而变化。在字体大小选择上,一般建议使用像素作为基础单位,可以保证在不同分辨率下文字大小的一致性。

(2)字体的继承性

font-family 会被进行继承,但在大多数情况下字体大小不会被继承。

2. 字体选择的一些小技巧

(1)web safe字体

所有浏览器通用的字体有几款被广泛认可,它们被称为“web safe字体”,包括Arial, Helvetica, Times New Roman, Times, Courier New, Courier等。它们既美观又便于浏览器加载,建议在开发中优先选择。

(2)区分操作系统类型

由于Windows、MacOS、Linux等操作系统往往已经预装了不同品牌的字体,前端工程师在设置字体时可以选择该操作系统预装的字体,以达到更好的兼容性。

(3)字体的适应程度和连字

某些字体不适用于特定的关键字,因为它们的连字可能会使文字难以辨认。请先在“font-family”属性中设置备用字体,以便即使备选字体发生失败,浏览器也可以使用其他更适合的字体。

四、总结

CSS的font-family是前端开发中必不可少的一个属性,不同的字体可以带来不同的视觉效果,更好地表现文本信息。使用font-family时,需要注意字体大小和字体的继承性,同时使用web safe字体可以保证浏览器兼容性。在选择字体的时候,可以考虑专门设计的字体或者区分操作系统类型等方面,提高开发效果。