Я хочу використовувати піктограму Font Awesome як вміст CSS, тобто
a:before {
content: "<i class='fa...'>...</i>";
}
Я знаю, що я не можу використовувати HTML-код content
, тож залишаються лише зображення?
Я хочу використовувати піктограму Font Awesome як вміст CSS, тобто
a:before {
content: "<i class='fa...'>...</i>";
}
Я знаю, що я не можу використовувати HTML-код content
, тож залишаються лише зображення?
Відповіді:
Оновлення для FontAwesome 5 Завдяки Aurelien
Вам потрібно змінити font-family
на Font 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 і нижче
Це неправильний спосіб його використання. Відкрийте дивовижний стиль стилю шрифту, перейдіть до 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;
його допомогою також змінюється шрифт для якірних тегів. Як ми можемо це впоратися?
font-family
припустимо, його називають :before
псевдо, а не тег прив’язки
content
коди для прямого копіювання (тобто, без монітора). PS: Мені все ще цікаво, чому хлопці FontAwesome не ставлять коди вмісту на кожну сторінку значків ?!
Ще одне рішення, без того, щоб вам вручну заплутувались символи 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>
Якщо у вас є доступ до файлів 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;
}
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
Вам слід встановити вагу шрифту на рівні 900, щоб шрифт Awesome 5 Free сім'ї шрифтів працював.
Це робочий:
.css-selector::before {
font-family: 'Font Awesome 5 Free';
content: "\f101";
font-weight: 900;
}
Як говориться на веб-сайті 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.
Оновлення шрифту Awesome 5 за допомогою SCSS
.icon {
@extend %fa-icon;
@extend .fas;
&:before {
content: fa-content($fa-var-user);
}
}
Ось мій вебпакет 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";
}