Font Awesome 5 在伪元素中选择正确的字体系列
Font Awesome 5 Choosing the correct font-family in pseudo-elements
我目前对在 CSS 伪元素中使用图标感到困惑。 fontawesome 有 4 种字体系列:Font Awesome 5 Free
、Font Awesome 5 Solid
、Font Awesome 5 Brands
、Font Awesome 5 Regular
这是 HTML :
<h1>Hello</h1>
案例一
我使用这个图标:https://fontawesome.com/icons/twitter?style=brands
如您所见,它是一个 brands
图标,所以 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;
}
有效!
案例二
我使用这个图标:https://fontawesome.com/icons/phone?style=solid
如您所见,它是一个 solid
图标,所以 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;
}
不起作用!
我做错了什么?
我们如何知道何时使用正确的字体系列?
只需在同一个 font-family
中使用所有这些,浏览器就会完成这项工作。如果在第一个中找不到,它将使用第二个。 (Multiple fonts in Font-Family property?)
顺便说一句,正确的 font-family
是 Free
而不是 Solid
因为 Solid 和 Regular 之间的区别 是 font-weight
并且两者具有相同的 font-family
。 font-family中没有Solid
和Regular
,只有Free
和Brands
。
您可能还会注意到,几乎所有 Solid
版本的图标都是免费的,但并非所有 regular
版本的图标都是免费的。其中一些包含在 PRO 包中。如果图标未显示,不一定是 font-family
问题。
所有Light
和duotone
版本都是PRO版本。
.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>
参考:https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements#define
处理 font-weight
问题的相关问题:
我目前对在 CSS 伪元素中使用图标感到困惑。 fontawesome 有 4 种字体系列:Font Awesome 5 Free
、Font Awesome 5 Solid
、Font Awesome 5 Brands
、Font Awesome 5 Regular
这是 HTML :
<h1>Hello</h1>
案例一
我使用这个图标:https://fontawesome.com/icons/twitter?style=brands
如您所见,它是一个 brands
图标,所以 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;
}
有效!
案例二
我使用这个图标:https://fontawesome.com/icons/phone?style=solid
如您所见,它是一个 solid
图标,所以 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;
}
不起作用!
我做错了什么?
我们如何知道何时使用正确的字体系列?
只需在同一个 font-family
中使用所有这些,浏览器就会完成这项工作。如果在第一个中找不到,它将使用第二个。 (Multiple fonts in Font-Family property?)
顺便说一句,正确的 font-family
是 Free
而不是 Solid
因为 Solid 和 Regular 之间的区别 是 font-weight
并且两者具有相同的 font-family
。 font-family中没有Solid
和Regular
,只有Free
和Brands
。
您可能还会注意到,几乎所有 Solid
版本的图标都是免费的,但并非所有 regular
版本的图标都是免费的。其中一些包含在 PRO 包中。如果图标未显示,不一定是 font-family
问题。
所有Light
和duotone
版本都是PRO版本。
.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>
参考:https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements#define
处理 font-weight
问题的相关问题: