使用字体真棒图标作为CSS内容

时间:2013-12-26 09:32:11

标签: html css font-awesome

我想使用字体真棒图标作为CSS内容,即

a:before {
    content: "<i class='fa...'>...</i>";
}

我知道我无法在content中使用HTML代码,所以只留下图片吗?

9 个答案:

答案 0 :(得分:556)

FontAwesome 5的更新 感谢Aurelien

您需要根据您尝试呈现的图标类型将font-family更改为Font Awesome 5 BrandsFont 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;
}

Demo

您可以阅读下面的其余答案,了解其工作原理,并了解图标与文字之间的间距的一些解决方法。


FontAwesome 4及以下

这是使用它的错误方法。打开字体真棒样式表,转到要使用的字体的classfa-phone,使用该实体复制该类下的内容属性,并使用它:

a:before {
    font-family: FontAwesome;
    content: "\f095";
}

Demo

如果您希望定位特定的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 */
}

Demo

现在在上面的示例中,图标由于大小不同而轻微推动,您肯定不希望这样,因此您可以在基本声明上设置固定的width,如

a:before {
    /* Other properties here, look in the above code snippets */
    width: 12px; /* add some desired width here to prevent nudge */
}

Demo

答案 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";
}