CSS如何使用自定义字体文件

html-css017

CSS如何使用自定义字体文件,第1张

是@font-face,语法如下: @font-face {  

  [ font-family: <family-name> ] ||

  [ src: [ <url> [ format(<string>#) ]? | <font-face-name> ]# ] ||

  [ unicode-range: <urange># ] ||

  [ font-variant: <font-variant> ] ||

  [ font-feature-settings: normal | <feature-tag-value># ] ||

  [ font-variation-settings: normal | [ <string> <number>] # ||

  [ font-stretch: <font-stretch> ] ||

  [ font-weight: <weight> ] ||

  [ font-style: <style> ]

}

<family-name>就是家族体系名称,例如sans-serif无衬线字体。

取值

font-family    这里指定的字体名字将会被用于font或font-family属性,在元素的使用字体的字体名称就是这里设定的。

src                远程字体文件位置的URL或者用户计算机上的字体名称, 可以使用local语法通过名称指定用户的本地计算机上的字体( 例如src: local('Arial'))。 如果找不到该字体,将会尝试其他来源,直到找到它。

font-variant    字态

font-stretch    字体描边.

font-weight    字重

font-style       对于src所指字体的描述。如果所需字体符合描述,则采用本font-face所定义的字体。

unicode-range在该@font-face中定义的unicode字体范围

例子:用到了用户本地字体"Helvetica Neue Bold"的备份;如果当前用户(浏览器)未安装该字体(两种可能的字体名都已经试过),就会用下载的字体"MgOpenModernaBold.ttf"来代替:

@font-face {

  font-family: MyHelvetica

  src: local("Helvetica Neue Bold"),  local("HelveticaNeue-Bold"),  url(MgOpenModernaBold.ttf)

  font-weight: bold

}

这其实是一个规避异常情况写法,因为浏览器默认会首先检测用户的系统字体是否有和 @font-face 声明的字体同名的字体,如果有就是优先使用系统字体,由于 @font-face 通常是开发者自定义生成的字体,可能和系统字体有差异,所以可以使用 src: local('☺') 来规避,因为 OpenType 协议规定字体名字中含有双字节 unicode 字符会被视作非法,所以这个笑脸就是用来让浏览器不匹配到任何系统字体,从而规避 @font-face 字体可能和系统字体重名而造成的问题

CSS中可以使用font-face属性即可实现调用任何外部等特殊字体。

font-face属性介绍及其实例:

对浏览器的支持:

Firefox、Chrome、Safari 以及 Opera 支持 .ttf (True Type Fonts) 和 .otf (OpenType Fonts) 类型的字体。

Internet Explorer 9+ 支持新的 font-face 规则,但是仅支持 .eot 类型的字体 (Embedded OpenType)。

使用您需要的字体。

在新的 font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。

如需为 HTML 元素使用字体,请通过 font-family 属性来引用字体的名称 (myFirstFont):

使用粗体字体。

您必须为粗体文本添加另一个包含描述符的 @font-face。

文件 "aa.ttf" 是另一个字体文件,它包含了 Sansation 字体的粗体字符。

只要 font-family 为 "myFirstFont" 的文本需要显示为粗体,浏览器就会使用该字体。

通过这种方式,我们可以为相同的字体设置许多 @font-face 规则。

实际案例:

案例1: <style> 

@font-face

{

font-family: myFirstFont

src: url('aa.ttf'),

     url('aa.eot') /* IE9+,可以是具体的实际链接 */

}

div

{

font-family:myFirstFont

}

</style> 案例2: @font-face

{

font-family: myFirstFont

src: url('aa.ttf'),

     url('aa.eot') /* IE9+ */

font-weight:bold

}

注意事项:

A、Internet Explorer 8 以及更早的版本不支持新的  font-face 规则。

B、代码中注意负符号,均为英文状态下。

C、字体文件格式必须添加后缀,且链接中必须带后缀。