Font Awesome 5 在伪元素中选择正确的字体系列 [英] Font Awesome 5 Choosing the correct font-family in pseudo-elements

查看:14
本文介绍了Font Awesome 5 在伪元素中选择正确的字体系列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前对在 CSS 伪元素中使用图标感到困惑.fontawesome 有 4 种字体系列:Font Awesome 5 FreeFont Awesome 5 SolidFont Awesome 5 BrandsFont Awesome 5 正则

这是HTML:

你好

案例 1

我使用这个图标:

参考:https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements#define

<小时>

处理 font-weight 问题的相关问题:伪元素上的 Font Awesome 5 显示方形而不是图标

I'm currently confused in using the icon in CSS pseudo-elements. There are 4 kind of font-family for fontawesome : Font Awesome 5 Free, Font Awesome 5 Solid, Font Awesome 5 Brands, Font Awesome 5 Regular

Here is the HTML :

<h1>Hello</h1>

Case 1

I use this icon : https://fontawesome.com/icons/twitter?style=brands

As you can see, its a brands icon, so font-family : Font Awesome 5 Brands

h1:before {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  content: "f099"; /* TWITTER ICON */
  font-family: "Font Awesome 5 Brands";
  font-weight: 400;
}

IT WORKS!

Case 2

I use this icon : https://fontawesome.com/icons/phone?style=solid

As you can see, its a solid icon, so font-family : Font Awesome 5 Solid

h1:before {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  content: "f095"; /* PHONE ICON */
  font-family: "Font Awesome 5 Solid";
  font-weight: 900;
}

DOESN'T WORK!

What did i do wrong?

How do we know when to use the correct font-family?

解决方案

Simply use all of them in the same font-family and the browser will do the job. If it doesn't find it in the first one, it will use the second one. (Multiple fonts in Font-Family property?)

By the way, the correct font-family is Free not Solid because the difference between Solid and Regular is the font-weight and both have the same font-family. There is no Solid and Regular in font-family, only Free and Brands.

You may also notice that almost all the Solid version of the icons are free BUT not all the regular version are free. Some of them are included in the PRO package. If an icon is not showing it's not necessarely a font-family issue.

All the Light and duotone version are PRO ones.

.icon {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 5 Brands","Font Awesome 5 Free";
}

.icon1:before {
  content: "f099";
  /* TWITTER ICON */
  font-weight: 400;
}

.icon2:before {
  content: "f095";
  /* PHONE ICON */
  font-weight: 900;
}

.icon3:before {
  content: "f095";
  /* PHONE ICON */
  font-weight: 400;/*This one will not work because the regular version of the phone icon is in the Pro Package*/
}

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.11.0/css/all.css" >

<div class="icon1 icon"></div>
<div class="icon2 icon"></div>
<br>

<div class="icon3 icon"></div>

Reference: https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements#define


Related question dealing with the font-weight issue: Font Awesome 5 on pseudo elements shows square instead of icon

这篇关于Font Awesome 5 在伪元素中选择正确的字体系列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆