我想将Font Awesome图标用作CSS内容,即:
a:before {
content: "<i class='fa...'>...</i>";
}
我知道我不能在内容
中使用HTML代码,那么只剩下图片了吗?
我想将Font Awesome图标用作CSS内容,即:
a:before {
content: "<i class='fa...'>...</i>";
}
我知道我不能在内容
中使用HTML代码,那么只剩下图片了吗?
FontAwesome 5更新 感谢Aurelien
根据您试图渲染的图标类型,需要将font-family
更改为Font Awesome 5品牌
或Font Awesome 5免费版
。此外,请不要忘记声明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
:
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 */
}
font-family: FontAwesome;
会同时改变锚点标签的字体,我们该如何处理? - Shubhfont-family
应该在 :before
伪元素上调用,而不是锚点标签。 - Mr. Alien如果你不想手动操作Unicode字符,还有另一种解决方案可以在Making Font Awesome awesome - Using icons without i-tags中找到(免责声明:我撰写了这篇文章)。
简言之,你可以像这样创建一个新类:
.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;
}
在使用Font Awesome 5 Free字体时,应将字重设置为900。
这是可行的:
.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";
}
<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);
}
}
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";
}