我想使用 Font Awesome 图标作为 CSS 内容,即
a:before {
content: "<i class='fa...'>...</i>";
}
我知道我无法在
content
中使用HTML代码,所以只剩下图像了吗?
FontAwesome 5 更新 感谢Aurelien
您需要根据您尝试渲染的图标类型将
font-family
更改为 Font Awesome 5 Brands
或 Font Awesome 5 Free
。另外,别忘了声明font-weight: 900;
a:before {
font-family: "Font Awesome 5 Free";
content: "\f095";
display: inline-block;
padding-right: 3px;
vertical-align: middle;
font-weight: 900;
}
您可以阅读下面答案的其余部分,以了解其工作原理并了解图标和文本之间间距的一些解决方法。
FontAwesome 4 及以下版本
这是错误的使用方法。打开 font Awesome 样式表,转到您要使用的字体的
class
(例如 fa-phone
),复制该类下的内容属性和实体,然后使用它,如下所示:
a:before {
font-family: FontAwesome;
content: "\f095";
}
只要确保如果您要定位特定的
a
标签,请考虑使用 class
来使其更加具体,例如:
a.class_name:before {
font-family: FontAwesome;
content: "\f095";
}
使用上面的方法会将图标与你剩余的文本粘在一起,所以如果你想在两者之间有一点空间,请使其
display: inline-block;
并使用一些padding-right
:
a:before {
font-family: FontAwesome;
content: "\f095";
display: inline-block;
padding-right: 3px;
vertical-align: middle;
}
进一步扩展这个答案,因为许多人可能需要在悬停时更改图标,因此为此,我们可以为
:hover
操作编写一个单独的选择器和规则:
a:hover:before {
content: "\f099"; /* Code of the icon you want to change on hover */
}
在上面的示例中,图标由于大小不同而微移,您肯定不希望这样,因此您可以在基本声明上设置固定的
width
,例如
a:before {
/* Other properties here, look in the above code snippets */
width: 12px; /* add some desired width here to prevent nudge */
}
无需手动处理 Unicode 字符的另一个解决方案可以在 Making Font Awesome Awesome - 使用不带 i 标签的图标(免责声明:我写了这篇文章)中找到。
简而言之,您可以像这样创建一个新类:
.icon::before {
display: inline-block;
margin-right: .5em;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
然后将其与任何图标一起使用,例如:
<a class="icon fa-car" href="#">This is a link</a>
如果您可以从 font-awesome 访问 SCSS 文件,您可以使用这个简单的解决方案:
.a:after {
// Import mixin from font-awesome/scss/mixins.scss
@include fa-icon();
// Use icon variable from font-awesome/scss/variables.scss
content: $fa-var-exclamation-triangle;
}
您应该将字体粗细设置为 900 才能使 Font Awesome 5 Free 字体系列正常工作。
这是工作中的:
.css-selector::before {
font-family: 'Font Awesome 5 Free';
content: "\f101";
font-weight: 900;
}
a:before {
content: "\f055";
font-family: FontAwesome;
left:0;
position:absolute;
top:0;
}
示例链接: https://codepen.io/bungeedesign/pen/XqeLQg
从以下位置获取图标代码: https://fontawesome.com/cheatsheet?from=io
您可以在 CSS 中使用 unicode。如果您使用的是 font Awesome 5,这就是语法;
.login::before {
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f007";
}
您可以在此处查看他们的文档。
正如 FontAwesome 网站上所说 FontAwesome =>
HTML:
<span class="icon login"></span> Login</li>
CSS:
.icon::before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
}
.login::before {
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f007";
}
在
.login::before
-> 编辑 content:'';
以适合您的 unicode。
使用 SCSS 更新 Font Awesome 5
.icon {
@extend %fa-icon;
@extend .fas;
&:before {
content: fa-content($fa-var-user);
}
}
这是我的 webpack 4 + font Awesome 5 解决方案:
webpack 插件:
new CopyWebpackPlugin([
{ from: 'node_modules/font-awesome/fonts', to: 'font-awesome' }
]),
全局CSS样式:
@font-face {
font-family: 'FontAwesome';
src: url('/font-awesome/fontawesome-webfont.eot');
src: url('/font-awesome/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
url('/font-awesome/fontawesome-webfont.woff2') format('woff2'),
url('/font-awesome/fontawesome-webfont.woff') format('woff'),
url('/font-awesome/fontawesome-webfont.ttf') format('truetype'),
url('/font-awesome/fontawesome-webfont.svgfontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
i {
font-family: "FontAwesome";
}