百科狗-知识改变命运!
--

@font-face - 使用自定义字体 - css @规则

乐乐1年前 (2023-11-21)阅读数 21#技术干货
文章标签字体

@font-face

@font-face - 使用自定义字体 - css @规则

版本:CSS3

@font-face 的CSS @规则,它允许网页开发者为其网页指定在线字体。通过这种作者自备字体的方式,@font-face 可以消除对用户电脑字体的依赖。@font-face 不仅可以放在在CSS的最顶层,也可以放在@规则的条件规则组中。

@font-face CSS at-rule 指定一个用于显示文本的自定义字体;字体能从远程服务器或者用户本地安装的字体加载。如果提供了local()函数,从用户本地查找指定的字体名称,并且找到了一个匹配项,本地字体就会被使用。否则,字体就会使用url()函数下载的资源。通过@font-face允许作者提供他们自己的字体,让设计内容成为了一种可能,同时并不会被所谓的"网络-安全"字体所限制(字体如此普遍以至于它们能被广泛的使用).指定查找和使用本地安装的字体名称可以让字体的自定义化程度超过基本字体,同时在不依赖网络情况下实现此功能。

  • 在同时使用url()local()功能时,为了用户已经安装的字体副本在需要使用时被使用,如果在用户本地没有找到字体副本就会去使用户下载的副本查找字体。
  • @font-face 规则不仅仅使用在CSS的顶层,还可以用在任何CSS条件组规则中。

在 HTML5 中,已知的 foreign elements(“外语元素,比如SVG和math命名空间中的元素”)将被自动加上命名空间。这意味着即使文档中没有任何xmlns属性,HTML元素也将表现的如同他们在XHTML命名空间内(http://www.w3.org/1999/xhtml)一样,而svgmath元素则将被加上对应的命名空间(http://www.w3.org/2000/svg 和http://www.w3.org/1998/Math/MathML).

Note:在 XML中,除非前缀直接定义在了一个属性上(例如:xlink:href),这个属性就不会有命名空间。换句话说,属性将不会继承其所在元素的命名空间,为了符合这个行为,CSS中的默认命名空间不会加到属性选择器中

示例

@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: ; ]
}

取值

  • font-family:所指定的字体名字将会被用于font或font-family属性(i.e. font-family:;)
  • src:远程字体文件位置的URL或者用户计算机上的字体名称,可以使用local语法通过名称指定用户的本地计算机上的字体(i.e. src: local('Arial');)。如果找不到该字体,将会尝试其他来源,直到找到它。
  • font-variant:A font-variant value.
  • font-stretch:A font-stretch value.
  • font-weight:A font-weight value.
  • font-style:对于src所指字体的描述。如果所需字体符合描述,则采用本font-face所定义的字体。
  • unicode-range:在该@font-face中定义的unicode字体范围

注意

这里使用的Web fonts 仍然受到同域限制(字体文件必须和调用它的网页同一域),但可以使用 HTTP access controls 解除这一限制。

因为这里没有为 TrueType(ttf), OpenType(otf)和 Web Open File Format(WOFF)字体定义MIME,因此不能为这些字体类型设置特定的MIME(实际上WOFF的MIME将会是application/font-woff,但浏览器对此MIME的识别还不统一,其它字体情况也类似,可暂时使用application/octet-stream)。

你不能在一个 CSS 选择器中定义@font-face 。例如,这样写是无效的:

.className { 
  @font-face { 
    font-family: MyHelvetica; 
    src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),
        url(MgOpenModernaBold.ttf);
    font-weight: bold; 
  } 
}

示例

下面的例子简单定义了一个可下载的字体,并应用到了文档的整个body标签上。

 Web Font Sample
  
    @font-face {
      font-family: "Bitstream Vera Serif Bold";
      src: url("http://developer.mozilla.org/@api/deki/files/2934/=VeraSeBd.ttf");
    }
    
    body { font-family: "Bitstream Vera Serif Bold", serif }
  


  This is Bitstream Vera Serif Bold. 

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

@font-face {
  font-family: MyHelvetica;
  src: local("Helvetica Neue Bold"),
  local("HelveticaNeue-Bold"),
  url(MgOpenModernaBold.ttf);
  font-weight: bold;
}

示例

这个例子新定义了一个字体,正常粗细的字采用字体Times New Roman,粗体字采用Consolas。

@font-face {
    font-family: myFirstFont;
    src: local("Times New Roman");
    font-weight:normal;
}

@font-face {
    font-family: myFirstFont;
    src: local(Consolas);
    font-weight:bold;
}

示例

@font-face{
	font-family: 'diyfont';
	src: url('diyfont.eot'); /* IE9+ */ 
	src: url('diyfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ 
	url('diyfont.woff') format('woff'), /* chrome、firefox */ 
	url('diyfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ 
	url('diyfont.svg#fontname') format('svg'); /* iOS 4.1- */ 
}
@font-face
{
	font-family:myfirstfont;
	src:url('sansation_light.ttf'),
	url('sansation_light.eot'); /* ie9 */
}

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)