用于 | 属性名 | CSS 版本 |
---|---|---|
① 字体的简写属性 / 集中定义 字体 相关属性 | font |
1 |
② 设置 字体族名 (兼顾 具体/通用字体,兼顾 中西文和多操作系统)。 | font-family |
1 |
③ 设置 字体大小 (有 绝对/相对大小 关键字,长度值/百分比值)。 | font-size |
1 |
④ 字体大小 调整 (指定 尺寸比 / 保留 首选字体的 x-height ,影响 字体的 实际字体大小 ) 尺寸比= x-height /font-size |
font-size-adjust |
3 |
⑤ 收缩或拉伸 当前的字体。设置 字体的 伸缩版本 (搭配font-family 属性) |
font-stretch |
2 |
⑥ 设置 字体样式 / 字体的倾斜 (搭配 font-family 属性)。 |
font-style |
1 |
⑦ 设置 字体的变体 (小型的 大写字母 / 简写属性) | font-variant |
1 |
⑧ 设置 字体的粗细 (搭配 font-family 属性) |
font-weight |
1 |
⑨ 设置 自定义字体 (不是属性,是一种@规则) | @font-face |
3 |
font
font
属性,
font-style
font-variant
font-weight
font-size
line-height
font-family
font
属性, 将元素的字体 设置为 系统字体。font: style| variant | weight| size/line-height| family| caption| icon | menu| message-box| small-caption | status-bar;
font-style
font-variant
font-weight
font-size/line-height
font-family
caption
icon
menu
message-box
small-caption
caption
字体的小型版本。status-bar
,美 [ˈstætəs; ˈstetəs]
font
指定为 系统关键字,则它必须是 以下之一的值:
caption
icon
menu
message-box
small-caption
status-bar
font
被指定为 几个与字体相关的属性的 缩写,则:
font-size
font-family
(放在最后)font-style
font-variant
font-weight
line-height
font-size/line-height
→ font-family
font-size
靠后: font-style
, font-variant
和 font-weight
,必须在 font-size
之前line-height
必须跟在 font-size
后面,由 “/
” 分隔,例如 “16px/3
” = font-size/line-height
font-family
必须最后指定style,variant,weight
→ font-size/line-height
→ family
font
直接设置,但是font-stretch
,font-size-adjust
和 font-kerning
也会重置为 初始值。font-family
font-family
属性 指定的是 一个 优先级 从高到低 的 可选字体列表。font-family
的 用途
@font-face
指定的 可以直接下载的字体。font-family: family-name|generic-family|inherit;
/* 一个字体族名 和 一个通用字体族名 */
font-family: Gill Sans Extrabold, sans-serif;
font-family: "Goudy Bookletter 1911", sans-serif;
/* 仅有一个 通用字体族名 */
font-family: serif;
font-family: sans-serif;
font-family: monospace;
font-family: cursive;
font-family: fantasy;
font-family: system-ui;
font-family: emoji;
font-family: math;
font-family: fangsong;
/* 全局值 */
font-family: inherit;
font-family: initial;
font-family: unset;
family-name
Times
" 和 “Helvetica
” 都是 具体的字体族名。generic-family
inherit
,
分隔times
"、"courier
"、"arial
"。@font-face
指定的 可以直接下载的 字体。serif
"、"sans-serif
"、"cursive
"、"fantasy
"、"monospace
"font-family
列表中 添加一个 通用的字体族名
@font-face
提供的字体 能够 正确地下载。5 种:衬线,无衬线,等宽,草书,艺术。
① 衬线字体: Serif
字体 , 美 /ˈserɪf/
② ★★★ 无衬线字体: Sans-serif
字体 (常被各大网站 作为备选字体)
无衬线字体,即笔画结尾是平滑的字体。
效果如下几个示例 ↓
❶ Helvetica
❷ Geneva
❸ Verdana
❹ ★★★ Arial
❺ Univers
❻★★★ Tahoma
西文字体的 首选字体
❼ 微软雅黑(Microsoft Yahei)
❽ 华文黑体(STHeiti)
、华文细黑(STXihei)
❾ 黑体-简(Heiti SC)
:
❿ ★★★ 冬青黑体(Hiragino Sans GB)
: 中文字体的 首选字体 (先兼顾 mac 系统)
③ 等宽字体: Monospace
字体
④ 草书字体: Cursive
字体
⑤ 艺术字体: Fantasy
字体
font-family: family-name|generic-family|inherit;
font-family: Times,Georgia,"New Century Schoolbook",Serif;
font-family: Helvetica,Geneva,Verdana,Arial,Univers,Sans-serif;
font-family: Courier,"Courier New","Andale Mono",Monospace;
font-family: "Zapf Chancery",Author,"Comic Sans",Cursive;
font-family: Western,Woodblock,,Klingon,Fantasy;
1 个通用 字体族名 = n 个 具体 字体族名
参考文章:
font-family: '宋体'
,由于字符编码的问题,少部分浏览器 解释这个代码的时候,中文出现乱码,这个时候设定的字体 无法正常显示。unicode
编码:
unicode
编码
font-family:'宋体'
→ font-family: '\5b8b\4f53'
。
\5b8b\4f53
= 宋体两个字的 unicode
编码表示。\5b8b\4f53
\9ED1\4F53
= font-family: '\9ED1\4F53';
\5FAE\8F6F\96C5\9ED1
\534E\6587\7EC6\9ED1
\534E\6587\9ED1\4F53
Font-family: SimSun, “宋体”
Font-family: “Microsoft YaHei”, “微软雅黑”
Font-family: STXihei, “华文细黑”, “Microsoft YaHei”, “微软雅黑”
Unicode
字符编码 表示的中文字体body
的字体定义body {
font-family: tahoma, arial, 'Hiragino Sans GB', '\5b8b\4f53', sans-serif;
}
tahoma
→ arial
tahoma
作为首选的西文字体,小字号下 结构清晰、阅读辨识容易;tohoma
,则选择 arial
作为 替代的西文字体,覆盖 windows 和 MAC OS;Hiragino Sans GB
→ 宋体 \5b8b\4f53
Hiragino Sans GB
为冬青黑体,首选的中文字体,保证了 MAC 用户的观看体验;\5b8b\4f53
’ 宋体 为替代的中文字体,小字号下有着不错的效果;sans-serif
结尾,保证旧版本 操作系统用户 能选中一款 电脑预装的 无衬线字体,向下兼容。mac
字体:
serif
和 sans-serif
结尾
serif
和 sans-serif
结尾 可以做到这点。body {
font-family: tahoma, arial, 'Hiragino Sans GB', '\5b8b\4f53', sans-serif;
}
Font-family: Helvetica, Tahoma, Arial, STXihei, “华文细黑”, “Microsoft YaHei”, “微软雅黑”, SimSun, “宋体”, Heiti, “黑体”, sans-serif;
tahoma
→ arial
→ 冬青黑体 → 宋体 →备用字体/ 无衬线字体 font-family: tahoma,arial,'Hiragino Sans GB','\5b8b\4F53',sans-serif;
默认 字体样式 | 设置 字体后 样式 |
---|---|
font-size
font-size
属性 还用于计算 em
、ex
和其他 相对长度单位的大小,因此, 可能会改变 其他元素的大小.font-size: medium|length| % | smaller |larger| xx-small-xx-large(xx-small,x-small,small,medium,large,x-large,xx-large)|inherit;
| |
where
= xx-small | x-small | small | medium | large | x-large | xx-large
= larger | smaller
= |
/* ,绝对大小值 */
font-size: xx-small;
font-size: x-small;
font-size: small;
font-size: medium;
font-size: large;
font-size: x-large;
font-size: xx-large;
/* ,相对大小值 */
font-size: larger;
font-size: smaller;
/* ,长度值 */
font-size: 12px;
font-size: 0.8em;
/* ,百分比值 */
font-size: 80%;
font-size: inherit;
font-size
属性的 取值:
absolute-size
关键字列表 或 相对大小 relative-size
关键字列表 中选择的单个关键字。
值。Ⅰ. 绝对大小 关键字: xx-small
~ xx-large
(7 个值)
x-small
→ x-small
→ small
→ medium
→ large
→ x-large
→ xx-large
medium
)。xx-small
x-small
small
medium
large
x-large
xx-large
Ⅱ. 相对大小 关键字
smaller
font-size
设置为 比父元素 更小 的尺寸。larger
font-size
设置为 比父元素更大 的尺寸。Ⅲ. 长度值: length
em
或 ex
时,大小为 相对于父元素的文字大小
font-size
本身的继承性,没设置font-size
时,属性值 就是从父亲那里继承的)。
0.5em
= 当前元素的 父元素的 字体大小的一半。em
或 ex
, 在其他属性中,它们指的是 相对 当前元素 的字体大小.Ⅳ. 百分比值:
font-size
设置为 基于 父元素 的 一个百分比值。Ⅴ. 继承父亲: inherit
em
相对长度单位的 使用技巧
body
元素的字体大小 = 62.5%
= 默认大小16p
x62.5%
= 10px
= 1em
。10px
的倍数: 过 计算基准大小10px
的倍数,在任何元素上 方便的使用em
单位。
6px
= 0.6em
, 8px
= 0.8em
, 12px
= 1.2em
, 14px
= 1.4em
, 16px
= 1.6em
。body {
font-size: 62.5%; /* font-size 1em = 10px */
}
p {
font-size: 1.6em; /* 1.6em = 16px */
}
示例1: 给一段文字 设置文字大小
css
.fontfamily {
width: 25%;
background-color: #d0d0d0;
padding: 10px;
border: solid black 2px;
font-family: tahoma, arial, 'Hiragino Sans GB', '\5b8b\4F53', sans-serif;
}
.fontsize {
/* font-size: xx-small;
font-size: x-small;
font-size:small;
font-size: medium;
font-size: large;
font-size: x-large;
font-size: xx-large;
font-size: larger;
font-size: smaller;
font-size: 20px;*/
/*font-size: 0.625em;*/
/*font-size: 62.5%;*/
}
x-height
: font-size-adjust
, 美 [ə’dʒʌst]
x
的高度 (而不是大写字母) 选择 字体大小。
x-height
:
x-height
/ font-size
),然后 该元素 将有效地 保留首选字体的x-height
,无论该字体 是否被替换。font-size-adjust
, 会根据 可用字体的尺寸比 调整实际的字体大小, 以 保持每行的 x高度 x-height
。x
的大小:
x
的大小 决定font-size-adjust
和 字体大小 font-size
就能保证 小写字母的大小 x-height
,从而 保证可读性。font-size-adjust
的浏览器
font-size-adjust
属性的值 = font-size
的值 所要乘的系数 = 首选字体的尺寸比 = 首选字体的小写字母的大小x-height
/ 字体大小
14px
× 0.5
= 7px
高font-size: 14px;
font-size-adjust: 0.5;
x-height
的 CSS 版本
font-size-adjust
最初在css2 中定义,但在 css2.1中删除了。它是在 css3 中新定义的。x-height
和 可阅读性
font-size-adjust
属性值 = 字体尺寸比 = 小写字母大小 / 字体大小
① 尺寸比 和 小写字母的大小x-height
:
Verdana
的 字体尺寸比 = 0.58
100px
时
x-height
= 尺寸比 × 字体大小 = 0.58
× 100px
= 58px
② 字体尺寸比 font-size-adjust
大的,相同 字体大小font-size
时, 小写字母的大小 相对较大,
0.58
的 Verdana
.,会比 字体尺寸比 = 0.46
的 Times New Roman
更易阅读。font-size-adjust: none |number (x-height/font-size);
/* 仍使用font size的值 */
font-size-adjust: none;
/* 使用 小写字母大小为 font size一半大小的 字体大小 */
font-size-adjust: 0.5;
font-size-adjust: inherit;
none
font-size
属性 决定字体大小。x-height
。number
x-height
/ font-size
font-size-adjust
尺寸比的 设置技巧
font-size
:
font-family
的 首选字体的尺寸比font-size-adjust
,字体大小 = 都会显示文字为 font-size
的大小font-size-adjust
+ 字体大小font-size
x-height
= font-size-adjust
× font-size
font-size-adjust
+ 字体大小font-size
⇒ 固定的 小写字母大小 ⇒ 可用字体的 实际 字体大小 = 设定的 固定的 小写字母大小 / 可用字体的 尺寸比font-size-adjust: 0.58
= 首选字体 Verdana
的尺寸比,同时设置 字体大小 font-size: 14px
Verdana
(字体 尺寸比 = 0.58
)不可用,而 备选字体 (字体 尺寸比 = 0.46
) 可用font-size
≠ 指定的 font-size
≠ 14px
14px
× 0.58
= 8.12px
font-size
= 设定的 固定小写字母大小/ 可用字体 本身的尺寸比
8.12px
/ 0.46
= 17.65px
14px
要大.font-family
,相同的 字体大小font-size
,不断 增大 字体尺寸比 font-size-adjust
的值,看看 字体大小的变化
0.1
开始,每次增加0.1
,到 1
结束..fontsizeajust {
width: 25%;
background-color: #d0d0d0;
padding: 10px;
border: solid black 2px;
font-family: tahoma, arial, 'Hiragino Sans GB', '\5b8b\4F53', sans-serif;
font-size: 20px;
/*font-size-adjust: 0.1;*/
}
font-size-adjust
变化的 实际字体大小
font-size-adjust
字体尺寸比 变小 ⇒ 设定的 小写字母的 固定字体大小 变小 ⇒ 实际的 字体大小 变小x-height
和 尺寸比
font-stretch
, 美 [strɛtʃ]
font-family
提供了 额外的字体,其中 字符 比普通字体窄 (压缩字体)或 宽(扩展字体)。
font-stretch
从这些字体中 选择 压缩或扩展的字体。font-stretch
属性,会没有任何效果font-stretch
属性 无效。font-stretch
和 font-family
相关联font-stretch: normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded |
;/* 关键字值 Keyword values */
font-stretch: ultra-condensed;
font-stretch: extra-condensed;
font-stretch: condensed;
font-stretch: semi-condensed;
font-stretch: normal;
font-stretch: semi-expanded;
font-stretch: expanded;
font-stretch: extra-expanded;
font-stretch: ultra-expanded;
/* 百分比值 Percentage values */
font-stretch: 50%;
font-stretch: 100%;
font-stretch: 200%;
/* 全局值 Global values */
font-stretch: inherit;
font-stretch: initial;
font-stretch: unset;
关键字值 和 百分比值
Ⅰ. 不伸缩 (默认值): normal
Ⅱ. 小于 默认字体:semi-condensed
, condensed
, extra-condensed
, ultra-condensed
font-family
的缩放比例。ultra-condensed
extra-condensed
condensed
semi-condensed
Ⅲ. 大于 默认字体: semi-expanded
,expanded
, extra-expanded
, ultra-expanded
semi-expanded
expanded
extra-expanded
ultra-expanded
Ⅳ. 百分比值:
50%
(包含) ~ 200%
(包含).font-stretch
规范中,属性只接受 9 个关键字值。
最窄 和 最宽
ultra-condensed
ultra-condensed
=50%
ultra-expanded
ultra-expanded
=200%
关键字值 | 百分比值 | (比 较小的 邻近关键字) 增加的差值 |
---|---|---|
ultra-condensed |
=50% |
↓ |
extra-condensed | =62.5% | 12.5% ↑ |
condensed | = 75% | 12.5% |
semi-condensed | =87.5% | 12.5% |
normal |
=100% |
12.5% |
semi-expanded | =112.5% | 12.5% |
expanded | =125% | 12.5% |
extra-expanded | =150% | 25% |
ultra-expanded |
=200% |
50% |
font-stretch
值 选择的外观 取决于 相关 字体支持的外观。100%
的值: 映射到 较窄的字体。100%
的值: 映射到 较宽的字体。font-stretch
属性,会没有任何效果,因为 当前字体,就一种字体,该字体 没有额外的 压缩字体,或者 拓展字体.font-style
font-family
中的 正常字体、斜体 或 倾斜 样式。font-family.
font-style: normal| italic| oblique| oblique | inherit;
font-style: normal;
font-style: italic;
font-style: oblique;
font-style: oblique 10deg;
/* 全局值 Global values */
font-style: inherit;
font-style: initial;
font-style: unset;
font-style
属性 = 一个关键字oblique
,则可 附加一个 可选的角度。(目前浏览器支持度 还很差,不要使用)normal
normal
”: 选择在 UA的字体数据库中 归类为“normal
”的字体italic
italic
的字体。
italic
”的字体oblique
)替代。
oblique
oblique
的字体。
oblique
”的字体oblique
的字体 实际上 可能是 通过使 普通字体倾斜 而生成的,这一点和 italic
不同。italic
)替代。
oblique
oblique
的字体,并额外指定 文本倾斜的角度。-90deg
~ 90deg
14deg
inherit
italic
和 oblique
的区别
oblique
: 选择 字体族的 oblique
变体。
oblique
变体就选择italic
变体。oblique
的字体 实际上 可能是 通过使 普通字体倾斜 而生成的,这一点和 italic
不同。italic
: 选择 字体族的 italic
变体
italic
变体就选择 oblique
变体。.fontstyle {
width: 50%;
background-color: #d0d0d0;
padding: 10px;
border: solid black 2px;
font-family: tahoma, arial, 'Hiragino Sans GB', '\5b8b\4F53', sans-serif;
font-size: 1.5em;
font-style:oblique -90deg;
}
<p class="fontstyle">金无足赤,人无完人。
<br />No one is perfect, everyone will make mistakes.
p>
默认 字体样式 | 斜体字体 italic |
---|---|
倾斜字体 oblique | 带角度的 倾斜 font-style:oblique -90deg;( -90deg~90deg,每次加10deg) |
font-variant
美 ['vɛrɪənt]
font-variant
是以下属性的 简写属性
font-variant-caps
,font-variant-numeric
,font-variant-alternates
,font-variant-ligatures
,font-variant-east-asian
.font
来设置 font-variant
的 CSS 2.1 值 (即 normal
或 small-caps
) 。font-variant
”将未指定的“font-variant
” 子属性 重置为 其初始值。
font-feature-settings
的值font-variant: normal| small-caps | inherit;
font-variant: small-caps;
font-variant: common-ligatures small-caps;
/* 全局值 Global values */
font-variant: inherit;
font-variant: initial;
font-variant: unset;
normal
normal
font-variant-caps, font-variant-numeric, font-variant-alternates, font-variant-ligatures, and font-variant-east-asian
.small-caps
(最常用)
inherit
font-variant
属性的值。none
font-variant-ligatures: none
normal
font-variant
是简写属性,所以在这个属性里,可以设置 子属性的值.font-variant-caps
petite
) 大写字母,该字符将会被以“小”型(small
)大写字母进行渲染。font-variant-caps
的 语法
font-variant-caps: normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps;
/* 关键字值 Keyword values */
font-variant-caps: normal;
font-variant-caps: small-caps;
font-variant-caps: all-small-caps;
font-variant-caps: petite-caps;
font-variant-caps: all-petite-caps;
font-variant-caps: unicase;
font-variant-caps: titling-caps;
/* 全局值 Global values */
font-variant-caps: inherit;
font-variant-caps: initial;
font-variant-caps: unset;
font-variant-caps
的 属性值
normal
small-caps
all-small-caps
petite-caps
, 美 /pəˈtiːt/
all-petite-caps
unicase
titling-caps
font-variant
属性 被设置为 all-small-caps
或 all-petite-caps
,将会为 认知障碍者(如读写障碍)的阅读 带来困难。font-variant-east-asian
属性,美 /ˈeʒən/
font-variant-east-asian: normal | [ || || ruby ]
normal | [ || || ruby ]
where
= [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]
= [ full-width | proportional-width ]
font-variant-east-asian: normal;
font-variant-east-asian: ruby;
font-variant-east-asian: jis78; /* */
font-variant-east-asian: jis83; /* */
font-variant-east-asian: jis90; /* */
font-variant-east-asian: jis04; /* */
font-variant-east-asian: simplified; /* */
font-variant-east-asian: traditional; /* */
font-variant-east-asian: full-width; /* */
font-variant-east-asian: proportional-width; /* */
font-variant-east-asian: ruby full-width jis83;
/* 全局值 Global values */
font-variant-east-asian: inherit;
font-variant-east-asian: initial;
font-variant-east-asian: unset;
normal
ruby
字符 变体: ruby
ruby
字符 使用 特殊的符号。
ruby
。
proportional-width
: 美 /prəˈpɔːrʃənl/
pwid
full-width
:
fwid
关键字 | 定义字形的标准 | OpenType 等值 |
---|---|---|
jis78 | JIS X 0208:1978 | jp78 |
jis83 | JIS X 0208:1983 | jp83 |
jis90 | JIS X 0208:1990 | jp90 |
jis04 | JIS X 0213:2004 | jp04 |
simplified | None, 使用 简体中文符号 | smpl |
traditional | None, 使用传统的汉字 | trad |
OpenType
字体 和 TrueType
字体
OpenType
,是一种 可缩放 字型(scalable font
)电脑字体类型,采用 PostScript
格式
TrueType
字型的新字型。.otf
,类型代码是 OTTO
,现行标准为 OpenType 1.4。TrueType
⇒ TrueType Open
⇒ OpenType
OpenType
最初发表于 1996年,并在 2000 年之后出现大量字体。
TrueType Open
字型, TrueType Open
字型又源于TrueType
字型。Adobe CID-Keyed font
技术。
OpenType
格式。OpenType
字体,Adobe 产品占了 三分之一。TrueType
字体TrueType
是由美国 苹果公司 和 微软公司 共同开发的一种 电脑轮廓字体(曲线描边字)类型标准。.ttf
,类型代码是 tfil
。TrueType
。之后微软 加入了开发,Windows 作业系统的字体格式 基本上都统一成 TrueType
,而在苹果的 Mac OS 却成了 PostScript 和 TrueType 对立的局面。
TrueType
后来也被 Linux 等系统使用,成为 标准字体。TrueType
的优点: 主要强项在于它 能给开发者 提供关于字体显示、不同字体大小的像素级 显示 等的 高级控制。font-variant-*
属性font-weight
font-family
。font-weight: normal |bold | bolder| lighter |number (100-900.400=normal,700=bold)|inherit;
/* 关键字值 Keyword values */
font-weight: normal;
font-weight: bold;
/* 相对于父元素的 关键字值 Keyword values relative to the parent */
font-weight: lighter;
font-weight: bolder;
/* 数字值 Numeric keyword values */
font-weight: 1
font-weight: 100;
font-weight: 100.6;
font-weight: 123;
font-weight: 200;
font-weight: 300;
font-weight: 321;
font-weight: 400;
font-weight: 500;
font-weight: 600;
font-weight: 700;
font-weight: 800;
font-weight: 900;
font-weight: 1000;
/* 全局值 Global values */
font-weight: inherit;
font-weight: initial;
font-weight: unset;
normal
bold
bolder
lighter
100
-1000
.
400
= normal
700
= bold
。100
200
300
400
500
600
700
800
900
inherit
100
、200
、300
、400
、500
、600
、700
、800
和 900
;451
)将 使用回退权值系统 转换为 这些值中的一个,但 非变量字体 实际上 只能使用 这些设定值。1
~ 1000
之间的 任何数字,并引入了 可变字体,可以利用 这种更细粒度的字体 设置字体粗细。⑸ 字体粗细的 回退机制
400
: 先小后大,先降后升 (先选择 尽可能地小的 字体粗细,再尽可能地大)
400
~500
(包含 数字本身) 之间: 先大后小,先升后降,再尽可能地大
500
之间的 可用粗细。
500
的可用粗细。500
: 先大后小,先升后降 (先尽可能地大,再尽可能地小)
总结: 尽可能地小,再尽可能地大 <400
先大,再尽可能地小,再尽可能地大 <500
尽可能地大,再尽可能地小
500
以下: 先尽可能地小, 优先 选择 偏细的字体.500
以上: 先尽可能地大 , 优先 选择 偏粗的字体.normal= 400
和 bold = 700
两种粗细值 选择,
100
-500
时,
500
的 = 使用normal = 400
= 正常字体600
-900
时
500
的 = 使用 bold = 700
= 粗体字。font-weight
数值 采取离散式定义(使用 100
的整倍数)。
100
的整数倍*50
时,将向上转换,如 150
将转换为 200
。lighter
或 更粗 bolder
时,下表显示 如何确定 元素的 绝对字体粗细。lighter
或 更粗 bolder
,是相对于 父元素继承的粗细值.继承值(Inherited value) | 更粗 bolder |
更细lighter |
---|---|---|
100 | 400 | 100 |
200 | 400 | 100 |
300 | 400 ( 300 及以下,更粗 = 400 = normal ) |
100 |
400 | 700 | 100 |
500 | 700 ( 400~500 ,更粗 = 700 = bold ) |
100 ( 500 及以下,更细 = 100 = thin ) |
600 | 900 | 400 |
700 | 900 | 400 ( 600~700 及以下,更细 = 400 = normal ) |
800 | 900 | 700 |
900 | 900 ( 600~900 ,更粗 = 900 = heavy ) |
700 ( 800~900 及以下,更细 = 700 = bold ) |
@font-face
CSS at-rule
指定 用来显示文本 的 自定义字体;;local()
函数:
local()
函数,从用户本地 查找指定的字体名称,并且找到了一个匹配项, 本地字体就会被使用.url()
函数:
url()
函数 指定的字体资源。url()
和local()
,以便在可用时 使用用户安装的字体副本,如果在用户的设备上 找不到,则 返回 进行 下载字体副本。@font-face
使得设计内容 不受所谓的 “网络安全字体”("web-safe
" fonts)”的限制 成为可能。@font-face
的 书写位置
@font-face
的 at-rule
不仅可以 写在 ❶ CSS 的顶层,还可以 写在 任何 ❷ CSS 条件规则组 内部。@font-face
,@规则 是独立的,不在选择器中.TrueType(ttf)
, OpenType(otf)
和 Web Open File Format(WOFF)
字体 定义 MIMEWOFF
的 媒体类型 MIME = application/font-woff
,但浏览器对此MIME的识别 还不统一,其它字体情况也类似,可暂时使用 application/octet-stream
)。@font-face {
font-family: "Open Sans";
src: url("/fonts/OpenSans-Regular-webfont.woff2") format("woff2"),
url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
}
@font-face
的语法@font-face {
[ font-family: ; ] ||
[ src: []; ] ||
[ unicode-range: ; ] ||
[ font-variant: ; ] ||
[ font-feature-settings: ; ] ||
[ font-variation-settings: ; ] ||
[ font-stretch: ; ] ||
[ font-weight: ; ] ||
[ font-style: ; ]
}
where
= | +
@font-face
的 属性
font-family
font
或font-family
属性( i.e. font-family:
; )src []
local
语法通过名称 指定用户的本地计算机上的字体( i.e. src: local('Arial'
); )。[]
指的是 自定义的字体的格式,主要用来帮助浏览器识别,其值主要有以下几种类型:truetype
,opentype
,truetype-aat
,embedded-opentype
,svg
等;font-variant
font-stretch
font-weight
font-style
src
所指字体的 样式。font-face
所定义的字体。unicode-range
@font-face
中定义的 unicode
字体范围
/*设置 自定义字体*/
@font-face {
font-family: "ChickenDinnerDemo";
src: url("../fonts/ChickenDinnerDemo.otf") format("opentype"), url('../fonts/chickendinnerdemo-webfont.woff2') format('woff2'),
url('../fonts/chickendinnerdemo-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;;
}
.fontfamily {
width: 25%;
background-color: #d0d0d0;
padding: 10px;
border: solid black 2px;
font-family: "ChickenDinnerDemo",serif;
}
<p class="fontfamily">金无足赤,<span>人无完人span>。
<br />No one is perfect, <span>everyone will make mistakesspan>.
p>
默认 字体样式 | 自定义 字体样式 |
---|---|
① 字体的路径: src: url("../fonts/ChickenDinnerDemo.otf") format("opentype")
.css
文件的,不是 相对于引用 css文件的 .html
文件的,这一点要注意,路径一旦错了,自定义字体 不会有效果的/
,和除号一样的符号 /
, 一定不要用错
C:\Users\Administrator\Desktop\PracticeDemo\CSS-Learning\fonts
(错误)② 同语言 只显示一个:
@font-face
中引用 各种格式的 字体@font-face
中的 font-family
属性中 设置font-family
属性值 = @font-face
中 font-family
属性值因为 不同的浏览器 对字体格式的支持 不一样,可能会造成 浏览器对@font-face
的兼容问题,主要涉及 以下几种 字体格式,是必需了解的
① TureTpe
(.ttf
)格式:
.ttf
字体 是 Windows 和 Mac 的 最常见的字体RAW
格式,不为网站优化TTF
;且 IE9 上只有被设置成 “installable
” 才能支持,所以 还需要 转别的格式TTF
允许嵌入 最基本的 数字版权管理标志————内置标志 可以告诉我们字体作者是否允许 这个字体在 PDF 或者网站等处使用,所以可能会有 版权问题。另一个缺点是,TTF
和 OTF
字体是 没压缩的,因此他们 文件更大。② OpenType
(.otf
)格式:
.otf
字体 被认为是一种 原始的字体格式,其 内置在 TureType
的基础上,OTF
字体包含一部分 屏幕和打印机 字体数据。OTF
有几个独家功能,包括 支持多平台 和 扩展字符集。
OTF
也允许多达 65000 个字符的存储。这个额外的空间让设计师可以自由地添加附加元素③ Web Open Font Format
(.woff
)格式:
.woff
字体 是 Web字体中 最佳格式,是一个开放的 TrueType
/OpenType
的 压缩版本,同时也支持 元数据包的分离WOFF
的编码工具 压缩,文件大小一般 比 TTF
小 40%
,加载速度 更快,可以更好的 嵌入网页中。元数据 metadata
允许在 字体文件中 包含许可数据,以解决 版权问题。WOFF
。WOFF2
是 WOFF
的下一代。
WOFF2
格式 在原有的基础上 提升了 30%
的压缩率。WOFF
的广泛支持,所以还只是一个 可展望的升级,目前已经被使用了。④ Embedded Open Type
(.eot
)格式:
.eot
字体 是 IE专用字体,可以从 TrueType
创建 此格式字体TTF
和 OT
F 版权的方案。
TTF
/OTF
字体 转成 EOT
字体使用,其中对字体 进行 压缩和裁剪 使得 文件体积更小。EOT
格式 只有 IE 支持。⑤ SVG
(.svg
)格式:
.svg
字体 是基于 SVG字体渲染的 一种格式SVG
字体是 iOS 上 Safari 4.1 以下 唯一允许的字体格式。这就意味着在@font-face
中 我们至少需要 .woff
,.eot
两种格式字体,甚至还需要.svg
等 字体 达到更 多种浏览版本的支持。
ott
, 其他4 种格式 都包含,兼容各种浏览器 @font-face {
font-family: global-iconfont;
src: url(//at.alicdn.com/t/font_1404888168_2057645.eot);
src: url(//at.alicdn.com/t/font_1404888168_2057645.eot?#iefix) format("embedded-opentype"),
url(//at.alicdn.com/t/font_1404888168_2057645.woff) format("woff"),
url(//at.alicdn.com/t/font_1404888168_2057645.ttf) format("truetype"),
url(//at.alicdn.com/t/font_1404888168_2057645.svg#uxiconfont) format("svg")
}
@font-face {
font-family: "ChickenDinnerDemo";
src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),url("../fonts/ChickenDinnerDemo.otf") format("opentype"), url('../fonts/chickendinnerdemo-webfont.woff2') format('woff2'),
url('../fonts/chickendinnerdemo-webfont.woff') format('woff');
font-weight: bold;
font-style: normal;
}
Times New Roman
,粗体字 采用Consolas
。/*设置 自定义字体*/
@font-face {
font-family: "ChickenDinnerDemo";
src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),url("../fonts/ChickenDinnerDemo.otf") format("opentype"), url('../fonts/chickendinnerdemo-webfont.woff2') format('woff2'),
url('../fonts/chickendinnerdemo-webfont.woff') format('woff');
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: myFirstFont;
src: local("Times New Roman");
font-weight:normal;
}
@font-face {
font-family: myFirstFont;/*和上面一个规则 一样的字体名*/
src: local(Consolas);
font-weight:bold;
}
.fontfamily {
width: 25%;
background-color: #d0d0d0;
padding: 10px;
border: solid black 2px;
font-family: myFirstFont,"ChickenDinnerDemo";
font-weight: normal;
/*font-weight: bold;*/
}
<p class="fontfamily fontsize fontsizeajust">金无足赤,人无完人。
<br />No one is perfect, everyone will make mistakes.
p>
正常字体 选择器中 font-weight: normal; | 加粗字体 选择器中 font-weight: bold; |
---|---|