字符实体、字体图标与Unicode码

字符实体、字体图标与Unicode码

字符实体与Unicode

在 HTML 中,某些字符是预留的,例如小于号「<」、大于号「>」等,浏览器会将它们视作标签。如果想要在HTML中显示这些预留字符,我们就要用到字符实体(character entities)。我们比较熟悉的字符实体有空格「 」,小于号「<」,大于号「>」等。这样的格式比较语义化,容易记忆,但其实字符实体有其他的格式:
&name;,&#dddd;,&#xhhhh;

这三种转义方式都称作 character reference,
第一种是 character entity reference,「&」符号后接预先定义好的 entity 名称。
后两种是 numeric character reference,数字取值为目标字符的 Unicode code point;
以「&#」开头的后接十进制数字,「&#x」开头的后接十六进制数字。
从 HTML4 开始,numeric character reference 以 Unicode 为准,与文档编码无关。「你好」二字分别是 Unicode 字符 U+4F60 和 U+597D,十六进制表示的 code point 数值「4F60」和「597D」,同时也就是十进制的「20320」和「22909」。所以

在HTML中输入

&#x4F60;&#x597D;
&#20320;&#22909;
都会显示为“你好”。

字体图标与Unicode

字体图标本质上是定义一种字体,只不过字体本身是图标。每个字体图标在定义的时候有一个Unicode码,这个Unicode可以是自定义的。
例如:引入了阿里的iconfont字体图标

@font-face {
    
    
    font-family: "iconfont";
    src: url('iconfont.eot?t=1580522005036');
    url('iconfont.woff?t=1580522005036') format('woff'),
    url('iconfont.ttf?t=1580522005036') format('truetype')
    ...
    ...
}
    
.iconfont {
    
    
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
// 下面定义每个字体图标的class类名其中content:"\e604"中的e604就是该字体定义
// 时的Unicode值的16进制
.iconsuoma:before {
    
    
  content: "\e604";
}
...
...

此时如果设置了字体为iconfont,那么同样也可以用实体字符的形式在html中展示
以下两种展示的图标是一样的

<span class="iconfont iconsuoma"></span>
<div class="iconfont">
  &#xe604;
</div>

猜你喜欢

转载自blog.csdn.net/mochenangel/article/details/128947540