web-dev-qa-db-ja.com

CSSコンテンツとして素晴らしいフォントアイコンを使用する

私はCSSコンテンツとして素晴らしいフォントアイコンを使いたい、すなわち

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

私はcontentにHTMLコードを使用できないことを知っています、それでそれは残っているイメージだけですか?

243
sdvnksv

FontAwesome 5のアップデート Aurelien に感謝

レンダリングしようとしているアイコンのタイプに基づいて、font-familyFont Awesome 5 Brands OR 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以下

それはそれを使用する間違った方法です。フォントの素晴らしいスタイルシートを開き、使用するフォントのclassfa-phoneと言って、そのクラスの下のコンテンツプロパティをエンティティにコピーし、次のように使用します。

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

デモ

特定のaタグを対象とする場合は、代わりにclassを使用してより具体的にすることを検討してください。

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

上記の方法を使用すると、アイコンが残りのテキストに貼り付けられます。そのため、2つの間に少しスペースを置きたい場合は、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 */
}

デモ

573
Mr. Alien

あなたが手動でUnicode文字をいじらなくてもいいもう一つの解決策はで見つけることができます素晴らしいフォント - 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>
23
dustinmoris

あなたが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;
}
19
ersefuril
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

3
Pervez

あなたはCSSでこれにUnicodeを使うことができます。あなたが素晴らしいフォント5を使用しているなら、これは構文です。

.login::before {
    font-family: "Font Awesome 5 Free"; 
    font-weight: 900; 
    content: "\f007";  
}

あなたは彼らのドキュメンテーションを見ることができます ここ

1
Mahib

Font Awesome 5 Free font-familyが機能するためには、font-weightを900に設定する必要があります。

これは動作しているものです:

.css-selector::before {
   font-family: 'Font Awesome 5 Free';
   content: "\f101";
   font-weight: 900;
}
0

FontAwesomeのWebサイトでの説明のとおり 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 - >あなたのUnicodeに合うようにcontent:'';を編集してください。

0
Prusakov

SCSSを使用したFont Awesome 5の更新

.icon {
  @extend %fa-icon;
  @extend .fas;

  &:before {
    content: fa-content($fa-var-user);
  }
}
0
Friendly Code