Как использовать и оформлять иконки с помощью CSS?
- Необходимые шаги для использования иконок
- Использование иконок Font Awesome
- Масштаб иконок Font Awesome и их цвет
- Использование иконок с кнопками
- Добавление эффекта тени к иконкам
- Использование иконок Font Awesome в списке
- Анимация иконок Font Awesome
- Поворот иконок Font Awesome
Для того, чтобы использовать иконки, вам необходимо следовать этим шагам:
Скопируйте код, предоставленный веб-страницей Font Awesome, и вставьте в <head> каждого шаблона или страницы, где хотите использовать иконки Font Awesome.
Для использования последней версии иконок this page смотрите эту страницу .
Здесь мы используем версию 5.8.1 link rel, чтобы определить связь между текущим документом и файлом со ссылкой:
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
Загрузка и установка не требуются.
Иконки должны быть расположены внутри элемента <body>. Найдите необходимую вам иконку и скопируйте ее HTML код.
Код иконки будет выглядеть следующим образом:
<i></i>
Можно легко изменить размер и цвет иконки и даже добавить к ней тени, используя только CSS. Иконки также могут быть перемещаемы и анаимируемы.
Иконки могут находится фактически где угодно, если используете стилевой префикс (fa) и название иконки. Font Awesome используется вместе со строчными элементами, и рекомендуется придерживаться к ним при проекте с согласованным HTML элементом.
Для добавления иконок на веб-страницы допустимо использование тегов <i> и <span>. Если вам не нравится, что сайт предоставляет вам код с тегом <i>, вы можете заменить его на <span>.
Для ссылки на иконку вам необходимо использовать имя иконки с префиксомpan fa- и предпочитаемый вами стиль с соответствующим префиксом (fas, fal, far или fab).
Используйте элемента <i> для ссылки на элемент:
<i></i>
Или используйте элемент span:
<span></span>
Префикс fa устарел в версии 5. Новые префиксы по умолчанию fas (сплошной стиль), fab (бренды), far (обычный стиль) и fal (тонкий стиль).
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> </head> <body> <h3>Пример иконок</h3> <p>Камера</p> <i></i> <p>Машина</p> <i></i> <p>Конверт</p> <i></i> </body> </html>
Попробуйте сами!
Иконки наследуют размер шрифта их родительского контейнера, чтобы соответствовать любому тексту, который может быть использован вместе с ними. Можно увеличить или уменьшить масштаб иконок относительно унаследованного размера шрифта с помощью таких классов, как fa-xs, span>fa-sm, fa-lg, fa-2x и др.
Что касается цвета, он может быть установлен с помощью CSS свойства color. Просто необходимо установить иконки внутри элемента <div> и задать для него цвет в стиле, или просто установить стиль для элемента <i>.
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> div { color: #1c87c9; } </style> </head> <body> <h3>Пример иконок с указанными размерами и цветами</h3> <div> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> </div> </body> </html>
Попробуйте сами!
Смотрите детали:
Также возможно добавить стиль непосредственно к размеру иконки, устанавливая font-size во внешнем стиле иконки или в стилевом атрибуте HTML элемента, который ссылается на иконку.
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> i { color: #8ebf42; } .star { font-size: 2em; } </style> </head> <body> <h3>Пример иконок с установленными размерами шрифта и цвета</h3> <div> <p>Иконка с размером по умолчанию.</p> <i></i> <p>Font-size: 2em;</p> <i></i> </div> </body> </html>
Попробуйте сами!
Вы можете также добавить иконки при создании кнопок. Просто вставьте иконку в элемент <button>.
Пример
<!DOCTYPE html> <html> <head> <title>Кнопки с иконками</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> button { border: none; border-radius: 5px; color: #ffffff; padding: 10px 14px; font-size: 16px; cursor: pointer; } button:hover { background-color: #666666; box-shadow: 2px 4px #999999; } .btn { background-color: #999999; } .home { background-color: #ff6347; } .menu { background-color: #008080; } .about { background-color: #e6b800; } </style> </head> <body> <h3>Кнопки с иконками</h3> <p>Icon buttons:</p> <button> <i></i> </button> <button> <i></i> </button> <button> <i></i> </button> <p>Кнопки с иконками текстов и разными цветами:</p> <button> <i></i> Home </button> <button> <i></i> Menu </button> <button> <i></i> About </button> </body> </html>
Попробуйте сами!
Для добавления эффектов тени к иконкам необходимо CSS свойство text-shadow.
Установите тень для того элемента, к которому относится иконка:
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> i { color: #1c87c9; text-shadow: 2px 2px 4px #00ffff; font-size: 30px; } </style> </head> <body> <h3>Пример иконок с тенью текста</h3> <div> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> </div> </body> </html>
Попробуйте сами!
С помощью иконок можно сделать много всего! Можете оформлять ваши HTML списки в виде декоративных маркеров.
Используйте класс fa-ul для элемента <ul> и класс fa-li для элемента <li>, чтобы заменить маркеры по умолчанию в неупорядоченном списке.
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> span { color: #8ebf42; } </style> </head> <body> <h3>Иконки в примере со списком</h3> <ul> <li> <span> <i></i> </span>Элемент списка 1 </li> <li> <span> <i></i> </span>List item 2 </li> <li> <span> <i></i> </span>Элемент списка 3 </li> <li> <span> <i></i> </span>Элемент списка 4 </li> </ul> </body> </html>
Попробуйте сами!
Используйте класс fa-spin для плавного вращения иконки и класс fa-pulsefa-spinner.
Будет выглядеть таким образом:
<i></i>
Смотрите пример, чтобы увидеть разницу между классами fa-spin и fa-pulse:
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> i { color: #1c87c9; text-shadow: 2px 2px 4px #00ffff; font-size: 30px; } </style> </head> <body> <h3>Иконки с классами fa-spin и fa-pulse</h3> <p>Spinner spin:</p> <i></i> <p>Spinner pulse:</p> <i></i> </body> </html>
Попробуйте сами!
Пример с несколькими анимированными иконками:
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use. fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> i { color: #1c87c9; text-shadow: 2px 2px 4px #00ffff; font-size: 30px; } </style> </head> <body> <h3>Анимированные иконки</h3> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> </body> </html>
Попробуйте сами!
Довольно часто для дополнительного дизайна вам может понадобиться поворачивать, отражать иконку.
Для произвольного поворота и отражения иконок используйте классы fa-rotate-* и fa-flip-*.
Пример
<!DOCTYPE html> <html> <head> <title>Иконки Font Awesome</title> <link rel="stylesheet" href="https://use. fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uh3+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <style> i { color: #1c87c9; text-shadow: 2px 2px 4px #00ffff; font-size: 30px; } </style> </head> <body> <h3>Поворот иконок</h3> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> <i></i> </body> </html>
Попробуйте сами!
Смотрите градус и детали вращения:
Размещение иконок на странице сайта. Делать проще, поддерживать легче / Хабр
Все должно быть изложено так просто, как только возможно, но не проще.А. Эйнштейн
Добрый день уважаемые разработчики. Довольно часто просматривая копаясь в чужом коде я наталкиваюсь на такое написание кода для кнопки с иконкой.
HTML
<div> <div> <i aria-hidden="true"></i> <span>menu</span> </div> </div>CSS
.bl_button__wrapp{ width: 100%; margin: 5% auto; font-size: 30px; line-height: 34px; color: blue } .bl_button{ position: relative; width: 150px; padding: 10px; margin: 0 auto; text-align: center; border: 1px solid #00f; cursor:pointer; } .fa-bars{ position: absolute; left: 10px; font-size: 34px; } .bl_button__text{ display: inline-block; }
See the Pen bad button by Andry Zirka (@BlackStar1991) on CodePen.
Это стандартная форма описания кнопки. Я сам долгое время примерно так писал свой код. Данное написание особо практикуется теми, кто использует готовые иконочные шрифты на подобии FontAwesome
Небольшие трудности возникают если текст должен быть по центру, а иконка несколько смещена относительно текста. Но всё это прекрасно решаемо через свойство position:absolute; задаваемое иконке. Также бывают проблемы с позиционированием данной иконки при адаптивности кнопки, но это другая история.
Теперь я хотел бы описать свой метод оформления иконок в тексте страници (на примере всё того же FontAwesome).
HTML
<button> <span>menu</span> </button> <button> <span>Съешь ещё этих мягких французских булок.</span> </button>CSS
.button_menu{ min-width: 280px; margin-top: 5%; margin-left: 4%; font-size: 4em; color: blue; border: 1px solid #00f; outline:none; /* Убираем если вас это смущает по дизайну*/ background:none; /* Убираем если вас это смущает по дизайну*/ } .button_menu__text{ position:relative; width: 100%; display: inline-block; text-align: center; margin: 0 auto; padding: 10px 40px; } .button_icon__menu:before{ content: "\f0c9"; font-family: FontAwesome; position: absolute; left: 0px; top: 14px; }
See the Pen good button by Andry Zirka (@BlackStar1991) on CodePen.
Преимущества такого описания.
1) Кода стало меньше. (Это существенно облегчит вам жизнь на масштабных проектах).
2) Код стал семантически более верным. Если div(или любой другой тег) функционально у Вас выполняет назначение кнопки, то и делайте его через тег button *Иначе возможны проблемы, особенно с Apple устройствами для которых придется прописывать type=«button» для вашего не правильного тега.
3) span размещенный внутри button всегда выравнивается по центру. (*Можно сменить ему display: если вам важны внутренне отступы).
4) Как вы могли заметить, вся суть моего оформления в том что я выношу изображение иконки через псевдо класс :before (:after) и позиционирую его абсолютно. При этом у его родителя span установлен position:relative; (! Важно, чтобы для иконки присваивался отдельный класс).
5) Иконка будет всегда на своем месте относительно span, даже если у вас предусмотрена смена языка, и скажем, в другом языке данное слово могло бы визуально перекрыть иконку.
6) Иконки, оформленные таким образом легко менять, особенно если вы используете препроцессоры (SASS, SCSS, LESS…), просто добавь нужный класс к нужному элементу.
Недостатки такого описания: (а куда же без них).
1) При использовании тега button
довольно часто приходится сбрасывать или переопределять стили, иначе выглядит не очень.
outline:none; background:none; border:none;2) Для каждого родительского (span) допустимо одновременно отображать только две иконки, собственно на псевдокласс :before и :after.
3) Если вы, как и я, довольно часто в своих работах используете FontAwesome, вам чаще придется посещать их официальный сайт, что бы выучить Unicode каждой иконки
Это несколько сложнее чем просто прописать классы fa fa-bars. Здесь есть и полный список иконок
4) Поскольку я в написании своего CSS стараюсь придерживаться методологии, то у меня для родительского элемента может быть и довольно много классов
<button> <span>menu</span> </button>Но если вас не пугает 4-5 классов для элемента, тогда Welcome.