首页 > 其他分享 >前端学习<二>CSS基础——14-CSS3属性详解:Web字体

前端学习<二>CSS基础——14-CSS3属性详解:Web字体

时间:2024-04-01 09:29:50浏览次数:27  
标签:CSS3 Web 14 format url iconfont 字体 webfont font

前言

开发人员可以为自已的网页指定特殊的字体(将指定字体提前下载到站点中),无需考虑用户电脑上是否安装了此特殊字体。从此,把特殊字体处理成图片的方式便成为了过去。

支持程度比较好,甚至 IE 低版本的浏览器也能支持。

字体的常见格式

不同浏览器所支持的字体格式是不一样的,我们有必要了解一下字体格式的知识。

TureTpe格式:(.ttf)

.ttf 字体是Windows和Mac的最常见的字体,是一种RAW格式。

支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome4+、Safari3+、Opera10+、iOS Mobile、Safari4.2+。

OpenType格式:(.otf)

.otf 字体被认为是一种原始的字体格式,其内置在TureType的基础上。

支持这种字体的浏览器有Firefox3.5+、Chrome4.0+、Safari3.1+、Opera10.0+、iOS Mobile、Safari4.2+。

Web Open Font Format格式:(.woff)

woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离。

支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome6+、Safari3.6+、Opera11.1+。

Embedded Open Type格式:(.eot)

.eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有IE4+。

SVG格式:(.svg)

.svg字体是基于SVG字体渲染的一种格式。

支持这种字体的浏览器有Chrome4+、Safari3.1+、Opera10.0+、iOS Mobile Safari3.2+。

总结:

了解了上面的知识后,我们就需要为不同的浏览器准备不同格式的字体。通常我们会通过字体生成工具帮我们生成各种格式的字体,因此无需过于在意字体格式之间的区别。

下载字体的网站推荐:

WebFont 的使用步骤

打开网站iconfont-webfont平台,如下:

上图中,比如我想要「思源黑体-粗」这个字体,那我就点击红框中的「本地下载」。

下载完成后是一个压缩包,压缩包链接:http://download.csdn.net/download/smyhvae/10253561

解压后如下:

上图中, 我们把箭头处的html文件打开,里面告诉了我们 webfont 的使用步骤

(1)第一步:使用font-face声明字体

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

(2)第二步:定义使用webfont的样式

 .web-font{
     font-family:"webfont" !important;
     font-size:16px;font-style:normal;
     -webkit-font-smoothing: antialiased;
     -webkit-text-stroke-width: 0.2px;
     -moz-osx-font-smoothing: grayscale;}

(3)第三步:为文字加上对应的样式

 <i class="web-font">这一分钟,你和我在一起,因为你,我会记得那一分钟。从现在开始,我们就是一分钟的朋友。这是事实,你改变不了,因为已经完成了。</i>

举例:

我们按照上图中的步骤来,引入这个字体。完整版代码如下:

 <!DOCTYPE html>
 <html>
 <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <style>
 ​
         p{
             font-size:30px;
         }
 ​
         /*  如果要在网页中使用web字体(用户电脑上没有这种字体)*/
         /* 第一步:声明字体*/
         /* 告诉浏览器 去哪找这个字体*/
         @font-face {font-family: 'my-web-font';
             src: url('font/webfont.eot'); /* IE9*/
             src: url('font/webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
             url('font/webfont.woff') format('woff'), /* chrome、firefox */
             url('font/webfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
             url('font/webfont.svg#webfont') format('svg'); /* iOS 4.1- */
         }
         /* 第二步:定义一个类名,谁加这类名,就会使用 webfont 字体*/
         .webfont{
             font-family: 'my-web-font';
         }
     </style>
 </head>
 <body>
     <!-- 第三步:引用 webfont 字体 -->
     <p class="webfont">生命壹号,永不止步</p>
 </body>
 </html>

代码解释:

(1)my-web-font这个名字是随便起的,只要保证第一步和第二步中的名字一样就行。

(2)因为我把字体文件单独放在了font文件夹中,所以在src中引用字体资源时,写的路径是 font/...

工程文件:2018-02-20-WebFont举例.zip

字体图标(阿里的 iconfont 网站举例)

我们其实可以把图片制作成字体。常见的做法是:把网页中一些小的图标,借助工具生成一个字体包,然后就可以像使用文字一样使用图标了。这样做的优点是:

  • 将所有图标打包成字体库,减少请求;

  • 具有矢量性,可保证清晰度;

  • 使用灵活,便于维护。

也就是说,我们可以把这些图标当作字体来看待,凡是字体拥有的属性(字体大小、颜色等),均适用于图标。

使用步骤如下:(和上一段的使用步骤是一样的)

打开网站iconfont-阿里巴巴矢量图标库,找到想要的图标,加入购物车。然后下载下来:

压缩包下载之后,解压,打开里面的demo.html,里面告诉了我们怎样引用这些图标。

举例1:(图标字体引用)

 <!DOCTYPE html>
 <html>
 <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <style>
         /*申明字体*/
         @font-face {font-family: 'iconfont';
             src: url('font/iconfont.eot'); /* IE9*/
             src: url('font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
             url('font/iconfont.woff') format('woff'), /* chrome、firefox */
             url('font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
             url('font/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
         }
 ​
         .iconfont{
             font-family: iconfont;
         }
 ​
         p{
             width: 200px;
             border: 1px solid #000;
             line-height: 60px;
             font-size:30px;
             margin:100px auto;
             text-align: center;
         }
 ​
         p span{
             color:red;
         }
     </style>
 </head>
 <body>
     <!-- 【重要】编码代表图标 -->
     <p><span class="iconfont">&#xe628;</span>扫码付款</p>
 </body>
 </html>
 ​

效果如下:

举例2:(伪元素的方式使用图标字体)

如果想要在文字的前面加图标字体,我们更习惯采用伪元素的方式进行添加。

代码如下:

 <!DOCTYPE html>
 <html>
 <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <style>
         /*申明字体*/
         @font-face {font-family: 'iconfont';
             src: url('font/iconfont.eot'); /* IE9*/
             src: url('font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
             url('font/iconfont.woff') format('woff'), /* chrome、firefox */
             url('font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
             url('font/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
         }
 ​
 ​
 ​
         p{
             width: 200px;
             border: 1px solid #000;
             line-height: 60px;
             font-size:30px;
             margin:100px auto;
             text-align: center;
             position: relative;
         }
 ​
         .icon::before{
             /*&#xe628;*/
             content:"\e628";
             /*position: absolute;*/
             /*left:10px;*/
             /*top:0px;*/
             font-family: iconfont;
             color:red;
         }
 ​
         span{
             position: relative;
 ​
         }
 ​
 ​
     </style>
 </head>
 <body>
     <p class="icon">扫码付款</p>
     <span class="icon" >我是span</span>
     <div class="icon">divvvvvvvvvvv</div>
 </body>
 </html>
 ​

效果如下:

工程文件:

  • 2018-02-20-图标字体demo.zip

  • 下载链接暂无。

其他相相关网站介绍

定制自已的字体图标库:

SVG素材:

360浏览器网站案例

暂略。

这里涉及到:jQuery fullPage 全屏滚动插件。

使用 Bootstrap 网站的图标字体

打开如下网站:Font Awesome, 为 Bootstrap 而创造的图标字体

如上图所示,下载字体后,进行解压:

使用步骤如下:

(1)如图只是想要字体的话,可以把cssfont这两个文件夹拷贝到项目里。

(2)在html文档中的 <head> 标签里,引入 font-awesome.min.css 文件:

     <link rel="stylesheet" href="css/font-awesome.min.css">

(3)想在哪个标签里用这个图标,直接在这个标签里加className就行(className都在网站上列出来了)。

完整版代码如下:

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
     <link rel="stylesheet" href="css/font-awesome.min.css">
     <style>
 ​
     </style>
 </head>
 <body>
     <span class="icon-play">播放</span>
 </body>
 </html>

写在最后:希望大家可以点个关注点个赞,这对up真的很重要!谢谢!

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

标签:CSS3,Web,14,format,url,iconfont,字体,webfont,font
From: https://blog.csdn.net/2301_76926204/article/details/137218816

相关文章

  • 通过WebView2获取HTTP-only cookie
    通过WebView2获取HTTP-onlycookie可以使用`WebView2.CookieManager`类的方法。以下是一个示例代码,演示如何获取HTTP-onlycookie:usingSystem;usingMicrosoft.Web.WebView2.Core;usingMicrosoft.Web.WebView2.WinForms;namespaceWebView2Example{classProgram{stat......
  • 学习日记之《Django3 Web应用开发实战》
    学习日记之《Django3Web应用开发实战》第二章——Django配置信息1、静态资源和媒体资源2、模板配置3、数据库配置4、中间件介绍第三章——初探路由1、反向解析2、重定向第四章——探究FBV视图1、异常响应2、文件下载功能3、文件上传功能自定......
  • 突破编程_C++_C++14新特性(变量模板)
    1变量模板在C++14中的引入与扩展在C++14中,变量模板的引入与扩展为编程带来了许多便利,特别是在泛型编程方面。这一特性允许我们直接定义模板变量,而不需要将其包装在模板类或模板函数中,从而使得代码更加直观和简洁。首先,我们来详细了解一下C++14之前模板的使用限制。......
  • NSSRound#20 Basic-web专项
    首先是难以评价的web签到。给了个假页面,出题人发了blog可以看看:NSSCTFRound#20Basic真亦假,假亦真CSDN_To_PDFV1.2出题笔记(附wp+源码)-CSDN博客看起来是php,结果是java写的(emmmmmmm....出题人你6,还真是无java不web啊),让我想起了冬季春秋杯有个题,也是php的页面,但是是python写......
  • web前端之页面逐渐呈现代码功能、对象数据如何获取下一个值、创建元素并添加id与类名
    MENU前言style(全部代码)JavaScript(核心代码)html(基本代码)前言1、效果演示以视频为准,暂未录视频(敬请期待);2、私信或微信可获取完整代码(WX:MJ682517)style(全部代码)*{margin:0;padding:0;box-sizing:border-box;}::-webkit-scrol......
  • 蓝桥杯2014年第十三届省赛真题-猜字母
    一、题目猜字母  把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。  接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。  得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。答案是......
  • JavaWeb学习笔记——第十天
    Springboostweb案例(一)准备工作需求说明需要完成以下功能:部门管理员工管理查询部门列表查询员工列表(分页、条件)删除部门删除员工新增部门新增员工修改部门修改员工环境搭建项目架构:准备数据库表(dept、emp)。--部门管理createtabledep......
  • [吾题有解] HDLBits : Exams/m2014 q6b
    本题是一道简单的FSM设计题,题中已经给出了状态转移图,只要求我们输出用于表示状态的3位2进制(y[3:1])中第2位(y[2])的次态,这里主要是记录实现该输出的两种思路,且这两种描述思路下的代码在综合时可能会得到两种不同的电路。首先是第一种只采用一条assign语句的描述方法:moduleto......
  • Web系统开发之——文章管理
    原文地址:Web系统开发之——文章管理-Pleasure的博客下面是正文内容:前言经过一番考量,关于Web应用系统功能部分的开发,决定采取基础的文字文章管理为核心功能。不再采取前后端分阶段完成的方式,而是以一个一个细节操作为单位,同时进行前端页面的架构以及后端工程的连接。......
  • 快速上手web前端开发(超详细教程)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言第一步下安装vscode第二步vscode汉化第三步安装前端所需插件1.LiveServer2.JavaScriptCodeSnippets3.HTMLBoilerplate第四步编辑HTML1.建立一个HTML文件夹,在vscode中打开该文件夹......