我想使用字体真棒图标作为CSS内容,即
a:before {
content: "<i class='fa...'>...</i>";
}
我知道我无法在content
中使用HTML代码,所以只留下图片吗?
答案 0 :(得分:556)
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及以下
这是使用它的错误方法。打开字体真棒样式表,转到要使用的字体的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 */
}
答案 1 :(得分:23)
Making Font Awesome awesome - Using icons without i-tags (免责声明:我写过这篇文章)中可以找到另一种无需手动处理Unicode字符的解决方案。
简而言之,您可以创建一个像这样的新类:
.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>
答案 2 :(得分:19)
如果您可以从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;
}
答案 3 :(得分:3)
Error: Cannot find module C:\Users\AppData\Roaming\npm\node_modules\angular-cli\bin\ng
at Function.Module._resolveFilename (module.js:555:15)
at Function.Module._load (module.js:482:25)
at Function.Module.runMain (module.js:701:10)
at startup (bootstrap_node.js:190:16)
at bootstrap_node.js:662:3
示例链接: https://codepen.io/bungeedesign/pen/XqeLQg
从以下位置获取图标代码: https://fontawesome.com/cheatsheet?from=io
答案 4 :(得分:1)
您可以在CSS中为此使用unicode。如果您使用的字体真棒5,这就是语法;
.login::before {
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f007";
}
您可以查看其文档here。
答案 5 :(得分:1)
使用SCSS更新Font Awesome 5
.icon {
@extend %fa-icon;
@extend .fas;
&:before {
content: fa-content($fa-var-user);
}
}
答案 6 :(得分:0)
如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。
答案 7 :(得分:0)
为使 Font Awesome 5 Free 字体系列正常工作,您应该将字体粗细设置为900。
这是工作的:
.css-selector::before {
font-family: 'Font Awesome 5 Free';
content: "\f101";
font-weight: 900;
}
答案 8 :(得分:0)
这是我的webpack 4 +真棒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";
}