Html 字体族的含义是什么?

Html 字体族的含义是什么?,html,css,fonts,Html,Css,Fonts,我是HTML和CSS的初学者。我对字体系列属性感到困惑 我声明字体系列如下: { font-family:cambria, sans-serif, georgia; } 但是当我删除sans serif,georgia部分时,视觉外观保持不变 为什么要声明字体系列,以及它与字体有何不同 { font-family:cambria, sans-serif, georgia; } 意思是: 如果您的浏览器不支持cambria使用sans serif如果不支持sans serif使用geo

我是HTML和CSS的初学者。我对
字体系列
属性感到困惑

我声明字体系列如下:

{
    font-family:cambria, sans-serif, georgia;
}
但是当我删除
sans serif,georgia
部分时,视觉外观保持不变

为什么要声明
字体系列
,以及它与
字体
有何不同

{
font-family:cambria, sans-serif, georgia;
}
意思是: 如果您的浏览器不支持
cambria
使用
sans serif
如果不支持
sans serif
使用
georgia
如果不支持
georgia
它将显示默认字体

Font: 12px bold cambria, sans-serif;

意思是:字体大小/字体重量/字体系列

字体
声明是一种速记,允许我们设计
字体大小
字体重量
字体系列
字体变体
行高
。一应俱全。(就像
background
background color
background url
background image
和其他一些与背景相关的属性的缩写。)


字体系列
本身允许我们指定初始字体,以及在无法使用初始字体时使用的通用字体。在您的情况下,
cambria
是初始字体,
sans serif
是在用户系统没有
cambria
字体时使用的回退字体样式,如果用户系统上没有
sans serif
字体,则使用
georgia

您可以按所需顺序列出字体。页面将尝试加载cambria,但如果用户没有cambria,它将尝试任何无衬线字体,最后将尝试georgia


想象一下,如果您使用的是一种所有用户可能都没有的非常特定的字体,那么您希望提供一个备份,以便在用户没有第一个所需字体时,系统默认字体不会出现。

这是一个按优先级排列的列表;尝试使用第一种字体,如果不可用,则尝试第二种字体,依此类推

Font: 12px bold cambria, sans-serif;

font{}
包含
font-family
,因为这是一种在一次过程中设置多个
font-*
值的方法,请参见。

使用font-family时,您要特别声明要使用的字体类型。另一方面,仅使用“font”属性,就可以声明各种字体样式属性

Font-Family: cambria, sans-serif, georgia;
这样做会告诉浏览器您更喜欢使用“cambria”字体,如果此浏览器中不存在该字体,则您希望使用“sans serif”,以此类推

Font: 12px bold cambria, sans-serif;

这允许您在一个位置放置多个值。

字体系列是一个列表,如果您指定的第一种字体无法显示,将加载第二种字体,如果第二种字体无法加载,将显示第三种字体

字体族是一个CSS属性,它接受指定元素字体的字体族名称的优先列表。如果列表中显示的第一种字体在浏览器上不可用,则可以使用逗号分隔的值来表示它们是可选字体

{
font-family: cambria, sans-serif, georgia;
}
这意味着,如果浏览器上没有字体“cambria”,它将选择“sans serif”等等。

该属性按优先顺序指定要尝试的字体系列列表。它不影响其他与字体相关的属性,但选择会影响
行高
(取决于字体和浏览器)的
正常
的含义

相反,使用
font
速记属性总是设置所有与字体相关的属性,尽管只需要明确指定字体大小和字体系列,例如
font:1em Cambria
;然后将其他属性设置为其初始值

使用
字体系列
的值,以便对于元素内容中的每个字符,使用列表中的第一个字体系列,前提是a)该字体系列在用户系统中可用,b)该系列中的适用字体包含该字符的字形。(这是已定义的机制,但已知浏览器部分错误地实现了它。)

在本例中,如果用户的系统具有Cambria,并且它包含相关元素中所有字符的字形,
font系列
值中的其他值无效。如果Cambria中没有字符,但浏览器使用的字体中有字符作为通用
无衬线
字体,则使用后者可能会造成风格不匹配。(通常,像Cambria这样的衬线字体应该有衬线回退。)
georgia
部分只在系统有georgia但没有Cambria,浏览器默认的
sans-serif
字体在内容中不包含某些字符,但georgia包含的情况下才起作用


是否使用
font-family
(和其他特定的字体属性)或
font
速记,或两者兼用,取决于判断和品味。从概念上讲,单独设置所有字体属性要简单得多。就代码长度而言,
font
可以帮你省去一些麻烦。

是几十个
font-*
属性的简写,包括
行高
:-)其中之一是
font系列
。感谢@Bram Vanroy的有用编辑:)学究之道,字体解析不是在浏览器是否具有字体基础上进行的,而是在每个字符上进行的,即在浏览器是否具有字体基础(如果可用)上进行的。因此,例如,如果字符未在cambria字体中定义,则该字符可以来自sans serif字体,即使浏览器有cambria字体可用。不是任何sans serif字体,而是浏览器特定的sans serif字体,之后就不需要尝试了,因为通用的sans serif字体始终存在。始终是一个详细的答案。