Gunakan ikon Font Awesome sebagai konten CSS


279

Saya ingin menggunakan ikon Font Awesome sebagai konten CSS, yaitu,

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

Saya tahu saya tidak dapat menggunakan kode HTML content, jadi apakah hanya gambar yang tersisa?


Dari memori Anda tidak dapat menyuntikkan HTML ke DOM menggunakan atribut konten. Teks tua biasa saja.
Mike Causer

Jawaban:


634

Pembaruan untuk FontAwesome 5 Terima kasih kepada Aurelien

Anda perlu mengubah font-familyke Font Awesome 5 BrandsATAU Font Awesome 5 Free, berdasarkan jenis ikon yang Anda coba render. Juga, jangan lupa untuk mendeklarasikanfont-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

Anda dapat membaca sisa jawaban di bawah ini untuk memahami cara kerjanya dan mengetahui beberapa solusi untuk jarak antara ikon dan teks.


FontAwesome 4 ke bawah

Itu cara yang salah untuk menggunakannya. Buka font gaya mengagumkan lembar, pergi ke classfont yang ingin Anda gunakan katakan fa-phone, salin properti konten di bawah kelas itu dengan entitas, dan gunakan seperti:

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

Demo

Pastikan bahwa jika Anda mencari untuk menargetkan atag tertentu , maka pertimbangkan untuk menggunakan tag classuntuk membuatnya lebih spesifik seperti:

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

Menggunakan cara di atas akan menempel ikon dengan teks Anda yang tersisa, jadi jika Anda ingin memiliki sedikit ruang di antara keduanya, buat display: inline-block;dan gunakan beberapa padding-right:

a:before {
    font-family: FontAwesome;
    content: "\f095";
    display: inline-block;
    padding-right: 3px;
    vertical-align: middle;
}

Memperluas jawaban ini lebih lanjut, karena banyak yang mungkin memiliki persyaratan untuk mengubah ikon pada hover, jadi untuk itu, kita dapat menulis pemilih terpisah dan aturan untuk :hovertindakan:

a:hover:before {
    content: "\f099"; /* Code of the icon you want to change on hover */
}

Demo

Sekarang dalam contoh di atas, ikon menyikut karena ukuran yang berbeda dan Anda pasti tidak menginginkannya, sehingga Anda dapat menetapkan fix widthpada deklarasi dasar seperti

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

Demo



Dengan font-family: FontAwesome;itu mengubah font untuk tag jangkar juga. Bagaimana kita bisa mengatasinya?
Shubh

@ Shubh membaca kode dengan hati-hati, font-familymisalkan dipanggil :beforepseudo dan bukan jangkar tag
Tn. Alien

Saya pikir saya akan menambahkan di sini bahwa Anda dapat menemukan spesifikasi unicode untuk ikon tertentu tanpa harus menggali sumbernya. Cukup buka daftar ikon di situs web font mengagumkan dan klik ikon yang Anda inginkan. Anda akan melihat nilai Unicode di halaman tepat di bawah sampel ikon: fortawesome.github.io/Font-Awesome/icon/pencil-square-o
Allen Underwood

Daftar Unicode CSS untuk FontAwesome ini lebih baik: astronautweb.co/snippet/font-awesome karena ini menunjukkan contentkode yang benar untuk penyalinan langsung (yaitu no-brainer). PS: Saya masih bertanya-tanya mengapa orang-orang FontAwesome tidak memasukkan kode konten ke setiap halaman ikon ?!
Kai Noack

25

Solusi lain tanpa Anda harus secara manual dipusingkan dengan karakter Unicode dapat ditemukan di Making Font Awesome awesome - Menggunakan ikon tanpa tag-i ( disclaimer: Saya menulis artikel ini ).

Singkatnya, Anda bisa membuat kelas baru seperti ini:

.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);
}

Dan kemudian menggunakannya dengan ikon apa saja, misalnya:

<a class="icon fa-car" href="#">This is a link</a>

23

Jika Anda memiliki akses ke file SCSS dari font-mengagumkan, Anda dapat menggunakan solusi sederhana ini:

.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

Anda dapat menggunakan unicode untuk ini di CSS. Jika Anda menggunakan font awesome 5, ini adalah sintaksnya;

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

Anda dapat melihat dokumentasinya di sini .


3

Anda harus menetapkan font-weight 900 untuk Font Awesome 5 Gratis font-family untuk bekerja.

Ini yang berfungsi:

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

1

Seperti yang tertulis di situs web 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";
   }

Di .login::before-> edit content:'';sesuai dengan unicode Anda.


1

Perbarui untuk Font Awesome 5 menggunakan SCSS

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

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

0

Inilah solusi webpack 4 + font awesome 5 saya:

Plugin webpack:

new CopyWebpackPlugin([
    { from: 'node_modules/font-awesome/fonts', to: 'font-awesome' }
  ]),

gaya css global:

@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";
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.