Використовуйте значок шрифту Awesome як вміст CSS


278

Я хочу використовувати піктограму Font Awesome як вміст CSS, тобто

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

Я знаю, що я не можу використовувати HTML-код content, тож залишаються лише зображення?


З пам’яті ви не можете вводити HTML у DOM за допомогою атрибута вмісту. Просто звичайний старий текст.
— Майк Каузер

Відповіді:


633

Оновлення для FontAwesome 5 Завдяки Aurelien

Вам потрібно змінити font-familyна Font 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 і нижче

Це неправильний спосіб його використання. Відкрийте дивовижний стиль стилю шрифту, перейдіть до classшрифту, який ви хочете використовувати, скажімо fa-phone, скопіюйте властивість вмісту в цей клас разом із сутністю та використовуйте його так:

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

Демо

Просто переконайтесь, що якщо ви хочете націлити на конкретний 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 */
}

Демо

Тепер у наведеному вище прикладі значок натискає через різний розмір, і ви цього точно не хочете, тож ви можете встановити фіксовану widthбазову декларацію, як

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

Демо



З font-family: FontAwesome;його допомогою також змінюється шрифт для якірних тегів. Як ми можемо це впоратися?
— Шуб

@Shubh уважно читати код, font-familyприпустимо, його називають :beforeпсевдо, а не тег прив’язки
— Містер

Просто подумав, що я додам тут, що ви можете знайти специфікацію Unicode для певного значка, не вникаючи в джерело. Просто перейдіть до списку піктограм на приголомшливому веб-сайті шрифту та натисніть потрібний значок. Значення Unicode ви побачите на сторінці безпосередньо під зразками піктограми: fortawesome.github.io/Font-Awesome/icon/pencil-square-o
— Аллен Андервуд

Цей список Unicode CSS для FontAwesome є кращим: astronautweb.co/snippet/font-awesome, тому що він показує правильні contentкоди для прямого копіювання (тобто, без монітора). PS: Мені все ще цікаво, чому хлопці FontAwesome не ставлять коди вмісту на кожну сторінку значків ?!
— Кай Ноак

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

Якщо у вас є доступ до файлів 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

Ви можете використовувати Unicode для цього в CSS. Якщо ви використовуєте шрифт awesome 5, це синтаксис;

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

З їх документацією ви можете ознайомитись тут .


3

Вам слід встановити вагу шрифту на рівні 900, щоб шрифт Awesome 5 Free сім'ї шрифтів працював.

Це робочий:

.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:'';відповідно до вашого unicode.



0

Ось мій вебпакет 4 + шрифтове дивовижне рішення 5:

плагін для веб-упаковки:

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";
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.