1. ホーム
  2. ハイパーリンク

[解決済み】Font AwesomeのアイコンをCSSのコンテンツとして使用する。

2022-03-28 03:04:06

質問

Font AwesomeのアイコンをCSSのコンテンツとして使いたいのですが、どうすればいいですか?

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

でHTMLコードを使用できないことは知っています。 content ということは、あとは画像だけなのでしょうか?

解決方法は?

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 のように、そのクラスの content プロパティをエンティティでコピーして使用します。

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 */
}

デモ