首页 > 其他分享 >前端中字体的使用

前端中字体的使用

时间:2023-09-20 22:33:05浏览次数:52  
标签:format url 前端 字体 file 使用 path font

前端中字体的使用

字体是前端的基础,本文介绍常见的几种字体以及如何在工程中引入自定义的字体。

字体的类型

常见的字体类型有 TTF/OTF, WOFF/WOFF2, SVG,EOT (这个是按照浏览器的支持率由高到底排序的)

  • TTF(True Type Font)
    由微软与苹果开发,广泛用于windows/Mac 操作系统,浏览器支持最高的字体,除了IE8,IE9部分支持。缺点是不能压缩,所以体积比较大
  • OTF(Open Type Font)
    是TTF的进化版,也是微软苹果共同开发。浏览器支持比较好
  • WOFF(Web Open Fort Format)
    它本质上是TTF/OTF,但是带有额外的信息,特别是它支持压缩,浏览器支持相对较好。针对web 开发的字体
    WOFF2是WOFF的下一代字体,压缩率比WOFF高,由于不是一个主要的升级,所以浏览器支持没有WOFF高。
  • EOT(Embedded Open Type)
    微软开发的针对网页的字体,只有IE8/9支持。
  • SVG
    苹果开发的字体,只有Safri,Safri mobile 支持。如果要在iphone/ipad 上开发,只有这个字体支持。

总结一下

TTF/OTF, WOFF/WOFF2, 是相对浏览器支持率比较高的字体。如果是iphone/ipad, 那就只能svg, EOT也就是IE8/9 了。

如何在前端中引用字体并保持各个浏览器的兼容

  • 引用字体可以通过css 中的@font-face,代码如下
@font-face{
  font-family:'yourfontname';
  src:url('fontfileurl1') format('fonttype1'),
  rl('fontfileurl2') format('fonttype2');
}

/*然后我们就可以采用上面的youfontname了*/
  • 上半部介绍了字体的类型及支持率,那么如何定义字体才可以取得更好的支持性呢。先看下面这个经典的写法。
    原则上我们想使用的字体是woff2>woff>ttf>svg>eot
src: url("font-file-path.eot");/*这个是为IE7,IE8,准备的它会优先被命中,对于其他的浏览器不支持就跳过了。*/
/*下面这个地方为什么又出现一个src,原因是兼容模式下IE7/IE8对于有问号的src 不能识别,也就是这个src 会被忽略掉,所以第一行也要加src. 这边的url 里面的?#iefix, 是为了避免IE9下的404问题的,其实可以简化成?#, IE9会将?后面的当作参数*/
src: url("eot-font-file-path.eot?#iefix") format("embedded-opentype"),
  url("woff2-font-file-path.woff2") format("woff2"),
  url("woff-font-file-path.woff") format("woff"),
  url("ttf-font-file-path.ttf") format("truetype"),
  url("svg-font-file-path.svg#fontname") format("svg");

上述的写法也可以简化成如下写法

src: url("font-file-path.eot");
src: 
  local('☺'),/*IE9之下是识别不了图形符号的,下面的就自动过滤掉了*/
  url("woff2-font-file-path.woff2") format("woff2"),
  url("woff-font-file-path.woff") format("woff"),
  url("ttf-font-file-path.ttf") format("truetype"),
  url("svg-font-file-path.svg#fontname") format("svg");

标签:format,url,前端,字体,file,使用,path,font
From: https://www.cnblogs.com/kongshu-612/p/17718629.html

相关文章

  • 从零开始学习Vue3路由,提升你的前端开发技能
    Vue3是当前最流行的前端框架之一,它提供了许多方便的功能和工具,其中路由(Router)就是其中之一。本文将介绍如何在Vue3中使用路由。安装和使用VueRouter首先,我们需要安装VueRouter。在终端中输入以下命令:npminstallvue-router@next--save接下来,我们需要创建一个路由实例。在......
  • 前端上传文件的基本方法
    前言处理用户选择的文件并将之上传至服务器,这属于是前端开发的基本功。虽然现在有各种框架和插件能够很简单地实现文件上传功能,但是作为一个有追求的前端,还是有必要了解以下前端文件上传的基本原理的。^-^使用FormData对象上传文件我们可以使用FormData对象来创建一个表......
  • Ansible专栏文章之十二:更安全,使用Vault进行加密
    回到:Ansible系列文章各位读者,请您:由于Ansible使用Jinja2模板,它的模板语法{%raw%}{{}}{%endraw%}和{%raw%}{%%}{%endraw%}和博客系统的模板使用的符号一样,在渲染时会产生冲突,尽管我尽我努力地花了大量时间做了调整,但无法保证已经全部都调整。因此,如果各位阅读时发......
  • 还在使用ResponseEntity?试试自己构建一个优雅的响应返回类和通用分页结果类
    直接上代码1.通用响应实体类importjava.util.Objects;/***<p>响应实体类</p>**@authorlishaohui*@since2023/9/2019:58*/publicclassResponse<T>{/***返回结果状态码*/privateIntegercode;/***返回结果状态信......
  • 使用 Selenium 或其他工具模拟浏览器使用及语法代码
    使用Selenium模拟浏览器使用的代码示例如下:fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeys#创建浏览器驱动实例driver=webdriver.Chrome()#打开网页driver.get("https://www.example.com")#查找并填写表单search_box=driver.f......
  • 使用Jest测试接口时间
    引言在开发和测试过程中,我们经常需要对接口的性能进行评估和优化。一个重要的指标是接口的执行时间。本文将介绍如何使用Jest来测试接口的执行时间,并提供示例代码。Jest简介Jest是一个流行的JavaScript测试框架,广泛应用于前端和后端的单元测试、集成测试和性能测试。它简单易用......
  • R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据|附代码数据
    原文链接:http://tecdat.cn/?p=20828 最近我们被客户要求撰写关于非凸惩罚函数回归的研究报告,包括一些图形和统计输出。本文使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是最小最大凹度惩罚函数 (MCP) 和光滑切片绝对偏差惩罚(SCAD),以及其他L2惩罚的选项(“弹......
  • Argocd使用说明
    一,背景概述1.0,背景知识docker虚拟化技术Kubernetes容器编排技术1.1,历史操作​ 以自身的使用经历来说明,之前在一个服务器上部署java程序的流程如下本地java-maven打包成为成果物将java程序的成果物上传到服务器上使用命令kill具体服务的进程使用命令启动java服务​ ......
  • 使用js开发一个快速打开前端项目的alfred插件
    使用js开发一个快速打开前端项目的插件目录前言使用的技术栈步骤问题发现待优化前言一直以来开发都是先打开vscode,然后选择项目,在项目多的情况下会觉得挺繁琐;如果同时打开了许多vscode窗口,寻找目标窗口也比较麻烦,于是萌生了开发一个alfred的工作流插件的想法,目标是在alf......
  • ubuntu下使用rtaudio采集桌面音频&扬声器音频
    最近在做国产化系统的音频采集,Ubuntu/Kylin/UOS下可以使用PulseAudio来控制音频输入输出,可以直接使用aptinstalllibpulse-dev获取相关库进行开发。不过我选择使用封装更好的RtAudio来进行ubuntu下的音频采集,RtAudio提供了一套跨平台的音频输入输出控制API,而且在linux下除了Puls......