整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

如何在网页中使用 web 字体?

前,浏览器只能展示本地安装的字体。如果字体未安装,网页显示效果会大打折扣。

为了解决这个问题,CSS 引入 web 字体,允许浏览器从服务器下载字体,下载完成后再重新渲染字体。

字体文件格式

使用 web 字体前,需要了解常用的字体文件格式。

TTF 字体文件,即 TrueType 字体,是由苹果和微软在 20 世纪 80 年代末开发的字体标准。它是 macOS 和 Windows 操作系统使用最广泛的字体格式。

OTF 字体文件,即 OpenType 字体,是一种可缩放的计算机字体格式。它建立在 TrueType 基础上,是微软的注册商标。OpenType 字体目前在主要的计算机平台上广泛使用。

WOFF 字体文件,即 The Web Open Font Format 字体,是一种用于网页的字体格式,2009 年开发,如今是 W3C(万维网联盟)的推荐标准。WOFF 本质是 OpenType 或 TrueType 字体,但是经过压缩并附加额外的元数据。在带宽受限的网络中,WOFF 能更好的支持从服务器到客户端的字体传输。

WOFF 2.0 字体文件,相比于 WOFF,提供了更高的压缩效率

SVG 字体,将 SVG 用作显示文本时的字形。SVG 1.1 规范定义了一个字体规范,允许在 SVG 文档中创建字体。

EOT 字体文件,即 Embedded OpenType Fonts 文件,是微软设计的一种用于网页的嵌入式字体,它是 OpenType 字体的紧凑形式。

不同字体格式的浏览器兼容性下图所示:

不同字体格式的浏览器兼容性,截图数据来自 w3schools.com

使用自定义字体

使用 @font-face CSS 指令定义自定义字体。使用前需要把字体文件放在服务器目录,然后定义新的字体名称,并指向字体所在位置。

京華老宋体为例,这是一款可以免费商用的中文字体。下载字体文件后,放到和 index.html 同级的目录,重命名为 jh-song.ttf。

下载字体文件

在 @font-face 指令内,使用 font-family 定义字体名称,src 属性定义字体文件路径。

定义 web 字体

然后,像使用普通字体一样,使用自定义字体样式:

使用 web 字体

.定位

  • 定位是一种更加高级的布局手段
    • 通过定位可以将元素摆放到页面 - 使用position属性来设置定位可选值:
    • static 默认值,元素是静止的没有开启定位
    • relative 开启元素的相对定位
    • absolute 开启元素的绝对定位
    • fixed 开启元素的固定定位
    • sticky 开启元素的粘滞定位
    • 通过定位可以将元素摆放到页面的任意位置

1.1 相对定位

  • 当元素的position属性值设置为relative时则开启了元素的相对定位
  • 相对定位的特点:
    • 1.元素开启相对定位以后,如果不设置偏移量元素不会发生任何的变化
    • 2.相对定位是参照于元素在文档流中的位置进行定位的
    • 3.相对定位会提升元素的层级
    • 4.相对定位不会使元素脱离文档流
    • 5.相对定位不会改变元素的性质块还是块,行内还是行内
position: relative;

1.2 绝对定位

  • 当元素的position属性值设置为absolute时,则开启了元素的绝对定位
  • 绝对定位的特点:
    • 1.开启绝对定位后,如果不设置偏移量元素的位置不会发生变化
    • 2.开启绝对定位后,元素会从文档流中脱离
    • 3.绝对定位会改变元素的性质,行内变成块,块的宽高被内容撑开
    • 4.绝对定位会使元素提升一个层级
    • 5.绝对定位元素是相对于其包含块进行定位的
  • 包含块( containing block )
    • 正常情况下:包含块就是离当前元素最近的祖先块元素
  • 绝对定位的包含块:
    • 包含块就是离它最近的开启了定位的祖先元素,如果所有的祖先元素都没有开启定位则根元素就是它的包含块
position: absolute;

1.3 固定定位

  • 将元素的position属性设置为fixed则开启了元素的固定定位
  • 固定定位也是一种绝对定位,所以固定定位的大部分特点都和绝对定位一样唯一不同的是固定定位永远参照于浏览器的视口进行定位固定定位的元素不会随网页的滚动条滚动
  • position: fixed;

1.4 粘滞定位

  • 当元素的position属性设置为sticky时则开启了元素的粘滞定位
  • 粘滞定位和相对定位的特点基本一致,不同的是粘滞定位可以在元素到达某个位置时将其固定
  • position: sticky;

1.5 绝对定位元素的布局

  • 水平布局left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块的内容区的宽度
    • 当我们开启了绝对定位后:水平方向的布局等式就需要添加left 和 right 两个值此时规则和之前一样只是多添加了两个值: 当发生过度约束: 如果9个值中没有 auto 则自动调整right值以使等式满足 如果有auto,则自动调整auto的值以使等式满足
    • 可设置auto的值 margin width left right
    • 因为left 和 right的值默认是auto,所以如果不指定left和right
    • 则等式不满足时,会自动调整这两个值
  • 垂直方向布局的等式的也必须要满足top + margin-top/bottom + padding-top/bottom + border-top/bottom + height = 包含块的高度

1.6 元素的层级

  • 对于开启了定位元素,可以通过z-index属性来指定元素的层级
  • z-index需要一个整数作为参数,值越大元素的层级越高
  • 元素的层级越高越优先显示
  • 如果元素的层级一样,则优先显示靠下的元素
  • 祖先的元素的层级再高也不会盖住后代元素
z-index: 3;


2. 偏移量(offset)

  • 当元素开启了定位以后,可以通过偏移量来设置元素的位置
  • top 定位元素和定位位置上边的距离
  • bottom 定位元素和定位位置下边的距离
  • 定位元素垂直方向的位置由top和bottom两个属性来控制 通常情况下我们只会使用其中一
    • top值越大,定位元素越向下移动
    • bottom值越大,定位元素越向上移动
  • left 定位元素和定位位置的左侧距离
  • right 定位元素和定位位置的右侧距离
  • 定位元素水平方向的位置由left和right两个属性控制 通常情况下只会使用一个
    • left越大元素越靠右
    • right越大元素越靠左
position: relative;

           left: 100px;
           top: -200px;

1. 字体

  • font-face可以将服务器中的字体直接提供给用户去使用
@font-face {
               /* 指定字体的名字 */
           font-family:'myfont' ;
           /* 服务器中字体的路径 */
           src: url('./font/ZCOOLKuaiLe-Regular.ttf') format("truetype");
      }

1.1 字体相关样式

  • color 用来设置字体颜色
  • font-size 字体的大小
    • em 相当于当前元素的 一个font-size
    • rem 相对于根元素的一个font-size
    • 相关的单位
  • font-family 字体族(字体的格式)可选值:
    • 指定字体的类别,浏览器会自动使用该类别下的字体
    • serif 衬线字体
    • sans-serif 非衬线字体
    • monospace 等宽字体
    • font-family 可以同时指定多个字体,多个字体间使用,隔开字体生效时优先使用第一个,第一个无法使用则使用第二个 以此类推
Microsoft YaHei,Heiti SC,tahoma,arial,Hiragino Sans GB,"B8BF53",sans-serif
font-family: 'Courier New', Courier, monospace;

2. 图标字体

  • 在网页中经常需要使用一些图标,可以通过图片来引入图标但是图片大小本身比较大,并且非常的不灵活
  • 所以在使用图标时,我们还可以将图标直接设置为字体,然后通过font-face的形式来对字体进行引入
  • 这样我们就可以通过使用字体的形式来使用图标
  • fontawesome 使用步骤
    • 1.下载 https://fontawesome.com/
    • 2.解压
    • 3.将css和webfonts移动到项目中
    • 4.将all.css引入到网页中
    • 5.使用图标字体 - 直接通过类名来使用图标字体 class="fas fa-bell" class="fab fa-accessible-icon"
  • 通过伪元素来设置图标字体
    • 1.找到要设置图标的元素通过before或after选中
    • 2.在content中设置字体的编码
    • 3.设置字体的样式
fab
  font-family: 'Font Awesome 5 Brands';

fas
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
<i class="fas fa-cat"></i>
通过实体来使用图标字体:
          &#x图标的编码;
<span class="fas"></span>

3. 行高

  • 可以将行高设置为和高度一样的值,使单行文字在一个元素中垂直居中
line-height: 200px;
  • 行高指的是文字占有的实际高度
    • 行间距 = 行高 - 字体大小
    • 也可以直接为行高设置一个整数
    • 如果是一个整数的话,行高将会是字体的指定的倍数
    • 可以通过line-height来设置行高
    • 行高可以直接指定一个大小(px em)
    • 行高经常还用来设置文字的行间距
  • 字体框
    • 字体框就是字体存在的格子,设置font-size实际上就是在设置字体框的高度
  • 行高会在字体框的上下平均分配
/* line-height: 1.33; */
           /* line-height: 1; */
           /* line-height: 10 */

4. 字体属性

  • font 可以设置字体相关的所有属性
    • font: 字体大小/行高 字体族
    • 行高 可以省略不写 如果不写使用默认值
    • 语法:
font: 50px/2 微软雅黑, 'Times New Roman', Times, serif;
  • font-weight 字重 字体的加粗
    • normal 默认值 不加粗
    • bold 加粗
    • 100-900 九个级别(没什么用)
    • 可选值:
  • font-style 字体的风格
    • normal 正常的
    • italic 斜体
font-weight: bold;
font-weight: 500;
font-style: italic;

5. 文本样式

  • text-align 文本的水平对齐
    • left 左侧对齐
    • right 右对齐
    • center 居中对齐
    • justify 两端对齐
    • 可选值:
text-align: justify;
  • vertical-align 设置元素垂直对齐的方式
    • baseline 默认值 基线对齐
    • top 顶部对齐
    • bottom 底部对齐
    • middle 居中对齐
    • 可选值:
vertical-align:baseline;
  • text-decoration 设置文本修饰
    • none 什么都没有
    • underline 下划线
    • line-through 删除线
    • overline 上划线
    • 可选值:
text-decoration: overline;
  • white-space 设置网页如何处理空白
    • normal 正常
    • nowrap 不换行
    • pre 保留空白
    • 可选值:
white-space: nowrap;

在制作网页时,文字是最基本的元素之一。让阅读者更容易阅读,短时间里获得更多信息,是网页创作者的目标。本篇将介绍各种文字格式标签的使用方法。

本篇主要针对初学者的一篇教程,如果你非常熟悉html,可以忽略本篇文章。

目录

  1. 标题文字
  2. 文字格式标签
  3. 段落标签
  4. 其它标签

标题文字

在网上浏览时经常看到一些标题文字,用来对应章节划分,它们以固定的字号显示,总共有6种级别的标题,从 h1 至 h6 依次减小,如下图:

html 代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<h3>这是标题 3</h3>
<h4>这是标题 4</h4>
<h5>这是标题 5</h5>
<h6>这是标题 6</h6>
</body>
</html>

标题对齐方式可以使用 align 属性,分别有三个属性:

  1. left —— 左对齐
  2. center —— 居中对齐
  3. right —— 右对齐

如下图:


html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
<h1>这是标题 1</h1>
<h2 align="left">这是标题 2</h2>
<h3 align="center">这是标题 3</h3>
<h4 align="right">这是标题 4</h4>
<h5>这是标题 5</h5>
<h6>这是标题 6</h6>
</body>
</html>

文字格式标签

除了标题,网页中普通文字也是不可缺少的,而各种文字效果可以使网页更加漂亮。

只需在<body>和</body>之间输入文字,就会直接在页面中显示,如何设置这些文字的格式,这里使用<font>标签,下面将逐一介绍各种文字格式用法。

一、设置字体、字号、颜色 —— <font> 标签

<font> 标签在HTML 4 中用于指定字体、字体大小和文本颜色,但在HTML5 中不支持。

  • face 属性:字体类型
  • size 属性: 字体字号大小
  • color 属性:字体颜色

html代码:

<html>
<body>
<div><font face="宋体">字体</font></div>
<div><font size="5">5号字体</font></div>
<div><font color="red">颜色</font></div>
<div><font size="5" face="arial" color="blue">一起使用</font></div>
</body>
</html>

在html5中不建议使用,请用 css 样式代替。

二、粗体、斜体、下划线、删除线—— strong、em、u、del

效果如下:

html代码:

<!DOCTYPE html>
<html>
<body>
<p>这是普通文本 - <strong>这是粗体文本</strong>。</p>
<p>这是普通文本 - <em>这是斜体</em>。</p>
<p>这是普通文本 - <u>这是下划线</u>。</p>
<p>这是普通文本 - <del>这是下划线</del>。</p>
</body>
</html>

注:html 5 和 html 4 相关标签存在巨大差异,比如 strong 和 b 、del 和 s、em 和 i 等效果相同,在html5 中不支持,b、s、i 标签,已不建议使用,关于各种差异,可自己了解下就可以了。

3、上标和下标 —— sup、sub

效果如下:


html代码:

<html>
<body>
<p>
普通文本 <sup>上标</sup>
</p>
<p>
普通文本 <sub>下标</sub>
</p>
<p>
数学公式 X<sup>3</sup> + 5X<sup>2</sup> - 5 = 0
</p>
<p>
数学公式 X<sub>1</sub> - 2X<sub>1</sub> = 0
</p>
</body>
</html>

4、空格——


一般在网页中输入文字时,在段落中明明增加了空格,却在页面中看不到,这是因为在html中,浏览器本身会将2个句子之间的所有半角空白仅当做一个空白来看待。所以在这里使用空格符代替,每个空格符代表一个半角空格,多个空格可以使用多次。

html代码:

由于头条不显示空格字符,所以用图片代替

效果:

5、其它特殊字符

除了空格字符,在网页中还有一些特殊字符也需要使用代码来代替,一般情况下,特殊字符由前缀 “&” 开始、字符名和后缀 “;” 组成,和空格符类似。如下表

特殊字符有很多,这里只列出一些例子,具体自己搜索了解下。

段落

在网页中要把文字有条理地显示,需要使用到段落标签,下面介绍一些与段落相关的标签。

  • 段落标签——p

在网页中,通过 <p>定义为一个段落。

html代码:

<html>
<body>
<p>这是段落。</p>
<p>这是段落。</p>
<p>这是段落。</p>
<p>段落元素由 p 标签定义。</p> 
</body>
</html>

效果:

  • 换行标签——br

在写文字时,除了自动换行外,换可以使用<br>标签强制文字换行,这个和 p 段落标签不一样。段落标签的换行是隔行的,而br不是,时2行文字更加紧凑。

html代码:

<html>
<body>
<p>
第一个段落<br />换行1<br />换行2<br />换行3<br />最后一行.
</p>
<p>
第二个段落 <br />换行1<br />换行2<br />换行3<br />最后一行.
</p>
</body>
</html>

效果如下:

如果不想文字被浏览器自动换行,可以使用<nobr></nobr>标签处理,如下图:

改行文字不会被自动换行,会看到出现横向滚动条。

  • 保留原始排版方式——pre

在网页制作中,有时需要保留一些特殊的排版效果,这是使用标签控制就会很麻烦,使用<pre>标签就可以保留文本的格式排版效果。如下图:

html代码:

<html>
<body>
<pre>
这是
预格式文本。
它保留了      空格
和换行。
</pre>
<p>pre 标签很适合显示计算机代码:</p>
<pre>
for i = 1 to 10
     print i
next i
</pre>
<p>这是一个ok效果</p>
<pre>
  O O    k  K
 O   O   K K
  O O    K  K
</pre>
</body>
</html>

其它标签

  • 右缩进—— blockquote

使用<blockquote>可以实现文字段落缩进,每使用一次,段落就缩进一次,可以嵌套使用。

实例代码:

<html>
<body>
Here comes a long quotation:
<blockquote>
This is a long quotation. This is a long quotation. This is a long quotation. This is a long quotation. This is a long quotation.
</blockquote>
请注意,浏览器在 blockquote 元素前后添加了换行,并增加了外边距。
</body>
</html>

效果如下:

请注意,浏览器在 blockquote 元素前后添加了换行,并增加了外边距。

  • 水平线——hr

在段落和段落之间加上一行水平线,将段落隔开。如下效果:

html代码:

<html>
<body>
<p>hr 标签定义水平线:</p>
<hr />
<p>这是段落。</p>
<hr />
<p>这是段落。</p>
<hr />
<p>这是段落。</p>
</body>
</html>
  • 文字标注——ruby

在网页中可以通过添加对文字的标注来说明某段文本。

效果如下:

html代码:

<!DOCTYPE HTML>
<html>
<body>
<p>ruby 使用语法:</p>
<ruby>
 被说明的文字 <rt> 标注 </rt>
</ruby>
</body>
</html>
  • 其它标签——var、codekbd

<dfn>

定义一个定义项目。

<code>

定义计算机代码文本。

<samp>

定义样本文本。

<kbd>

定义键盘文本。它表示文本是从键盘上键入的。它经常用在与计算机相关的文档或手册中。

<var>

定义变量。您可以将此标签与 <pre> 及 <code> 标签配合使用。

<cite>

定义引用。可使用该标签对参考文献的引用进行定义,比如书籍或杂志的标题。

总结

本篇介绍了大部分常用的文本格式标签,在制作网页时会经常使用到。如何掌握这些标签使用,很简单,可以使用文本编辑器或类似w3cshool 在线可编辑预览的工具,亲手写一写,熟悉每个标签的用处,无需死记硬背,关键在于理解。

最后,感谢您的阅读及关注,祝你学习愉快。

上篇:前端入门——HTML的发展历史

下篇:前端入门——html 列表