CSSコンテンツとしてFont Awesomeアイコンを使用する


279

Font AwesomeアイコンをCSSコンテンツとして使用したい。

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

でHTMLコードを使用できないことはわかっていますcontent。画像しか残っていないのですか?


メモリから、content属性を使用してHTMLをDOMに挿入することはできません。ただの古いテキスト。
マイク・コーサー、

回答:


634

FontAwesome 5の更新、 Aurelienに感謝

レンダリングしようとしているアイコンのタイプに基づいて、font-familyFont Awesome 5 BrandsOR に変更する必要があり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スタイルシートを開き、classsayを使用するフォントのに移動し、fa-phoneそのクラスの下のcontentプロパティをエンティティとともにコピーして、次のように使用します。

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

デモ

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

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

デモ


68
Font AwesomeのUnicode文字コードの公式リストについては、こちらをご覧ください。
Boaz

font-family: FontAwesome;、それはまた、アンカータグのフォントを変更します。どうすればそれを処理できますか?
Shubh

@Shubhはコードを注意深く読み、アンカータグではなく疑似タグfont-familyで呼び出されると想定されています:before
Mr. Alien

ソースを掘り下げることなく、特定のアイコンのユニコード仕様を見つけることができることをここに付け加えたいと思いました。Font awesomeのWebサイトにあるアイコンのリストに移動し、目的のアイコンをクリックするだけです。あなただけのアイコンのサンプルの下のページにUnicodeの値が表示されます:fortawesome.github.io/Font-Awesome/icon/pencil-square-o
アレンアンダーウッド

FontAwesomeため、このCSS Unicodeのリストが優れている:astronautweb.co/snippet/font-awesomeそれは正しい示しているのでcontent、直接コピーのためのコードを(すなわちA誰でも思いつきそう)。PS:FontAwesomeの連中がなぜ各アイコンページにコンテンツコードを配置しないのか疑問に思いますか?!
カイノアック2018年

25

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

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

CSSでこれにUnicodeを使用できます。font awesome 5を使用している場合、これは構文です。

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

こちらのドキュメントをご覧ください


3

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

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

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

1

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:'';あなたのユニコードに合うように。



0

これが私のwebpack 4 + font awesome 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";
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.