Введение
В этом Лаборатории вы научитесь создавать анимированные кнопки социальной поделиться с помощью HTML и CSS3. Эти кнопки используют библиотеку Font Awesome для иконок и стилизуются с использованием CSS для обеспечения плавного эффекта перехода при наведении. В конце этого руководства у вас будет набор красивых, адаптивных социальных кнопок, которые вы сможете интегрировать на любом сайте.

Введение в иконки
Для использования иконок Font Awesome просто используйте префикс "fa", за которым следует имя иконки.
Специфика формата следующая: <i class="fa ICON_NAME"></i>
Для подключения необходимых иконок из библиотеки иконок напишите следующий код в файле index.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Animated Social Sharing Buttons</title>
<!--Библиотека иконок-->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"
/>
</head>
<body>
<div>
<i class="fa fa-facebook"></i>
<i class="fa fa-twitter"></i>
<i class="fa fa-google"></i>
<i class="fa fa-instagram"></i>
<i class="fa fa-pinterest"></i>
</div>
</body>
</html>
Результат выглядит так:

Использование псевдо-классов селекторов позволяет изменить стиль при наведении курсора мыши на связанный объект. Поэтому мы добавляем пустую ссылку к иконке, или вы можете ссылаться на соответствующие социальные домашние страницы.
Синтаксис псевдо-класса: selector:pseudo-class {property:value;}
a:hover {property:value;}задает стиль, отображаемый при наведении курсора мыши на ссылку.
Установите необходимые селекторы классов, чтобы облегчить последующее стилирование соответствующих кнопок.
<div class="social-btns">
<a class="btn facebook" href="#"><i class="fa fa-facebook"></i></a>
<a class="btn twitter" href="#"><i class="fa fa-twitter"></i></a>
<a class="btn google" href="#"><i class="fa fa-google"></i></a>
<a class="btn instagram" href="#"><i class="fa fa-instagram"></i></a>
<a class="btn pinterest" href="#"><i class="fa fa-pinterest"></i></a>
</div>
Предварительный просмотр эффекта:

Иконки Font Awesome становятся синими, потому что после применения тега <a> стандартный цвет шрифта - синий.
Настройка стиля иконок
Прежде чем настраивать стиль иконок, добавим в тег <head> файла index.html таблицу стилей style.css.
<link rel="stylesheet" href="style.css" />
Для стандартизации общего стиля зададим глобальный стиль в style.css.
/* Глобальные настройки стиля */
* {
margin: 0;
padding: 0;
}
a,
img {
border: 0;
}
body {
background: #eee;
}
Для украшения векторных иконок, предоставляемых шрифтом Font Awesome, давайте сначала зададим их цвета.
.social-btns.btn.facebook.fa {
color: #3b5998;
}
.social-btns.btn.twitter.fa {
color: #00aff0;
}
.social-btns.btn.google.fa {
color: #dc4a38;
}
.social-btns.btn.instagram.fa {
color: #bf00ff;
}
.social-btns.btn.pinterest.fa {
color: #cc0000;
}
Предварительный просмотр эффекта:

Далее мы настроим иконку на мгновенное увеличение при касании и изменение ее цвета. Для эффекта мгновенного увеличения мы можем использовать transform: scale(0.8) для уменьшения иконки до 80% ее исходного размера, а при наступлении события касания она возвращается к исходному размеру с использованием transform: scale(1).
Введите следующий код в файл style.css:
.social-btns.btn.fa {
/* Задаем стиль отображения по умолчанию для ссылки */
-webkit-transform: scale(0.8);
transform: scale(0.8);
}
.social-btns.btn:focus.fa, /* Выбираем стиль для фокусированной кнопки */
.social-btns.btn:hover.fa {
/* Задаем стиль отображения для ссылки при наведении курсора */
color: #fff; /* Меняем ее цвет */
-webkit-transform: scale(1);
transform: scale(1);
}
.social-btns.btn.fa {
/* Задаем размер и вертикальное выравнивание иконок, предоставляемых Font Awesome */
font-size: 38px;
vertical-align: middle;
}
Предварительный просмотр эффекта:

Настройка стиля кнопки
Для макета страницы мы центрируем кнопки на странице, задаем их как элементы встроенного уровня с блочным поведением, а затем убираем их избыточность.
Атрибут display определяет тип элемента для генерации:
display:inlineзадает элемент встроенного типа, который занимает одну строку с другими элементами, то есть не занимает целую строку.display:blockзадает элемент блочного уровня, который занимает целую строку.display:inline-blockкомбинирует два предыдущих способа, чтобы создать элемент блочного уровня, который не занимает целую строку.
.social-btns {
height: 90px;
margin: 80px auto;
font-size: 0;
text-align: center; /* горизонтальное выравнивание по центру */
}
.social-btns.btn {
display: inline-block; /* задаем кнопку как элемент блочного уровня, который не занимает целую строку */
background-color: #fff;
width: 90px;
height: 90px;
line-height: 90px; /* задаем высоту строки */
margin: 0 10px;
text-align: center;
position: relative; /* задаем относительное позиционирование */
overflow: hidden; /* скрываем содержимое, выходящее за пределы элемента */
border-radius: 28%; /* закругляем углы DIV */
box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.1); /* добавляем тень к элементу DIV */
opacity: 0.99; /* задаем прозрачность. От 0.0 - прозрачный до 1.0 - полностью непрозрачный */
}
Предварительный просмотр эффекта:

Мы видим, что при касании кнопки иконка и фон кнопки становятся белыми, что затрудняет четкое восприятие. Поэтому нам нужно настроить стиль кнопки при касании. Во - первых, мы должны повернуть btn:before по часовой стрелке на 45° с использованием transform: rotate(45deg). Затем настроим начальную и конечную позиции btn:before.

Селектор before: Вставляет новый контент перед содержимым элемента.
.social-btns.btn:before {
/* Задаем значения top и left перед содержимым каждого элемента btn, то есть позицию btn, когда она не нажата */
top: 90%;
left: -110%;
}
.social-btns.btn:focus:before,
.social-btns.btn:hover:before {
/* Настраивает позицию кнопки при нажатии */
top: -10%;
left: -10%;
}
.social-btns.btn:before {
content: "";
width: 120%;
height: 120%;
position: absolute;
/* Поворачиваем btn:before на 45° по часовой стрелке */
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
/* Задаем цвет btn:before, то есть цвет фона кнопки после нажатия */
.social-btns.btn.facebook:before {
background-color: #3b5998;
}
.social-btns.btn.twitter:before {
background-color: #00aff0;
}
.social-btns.btn.instagram:before {
background-color: #bf00ff;
}
.social-btns.btn.google:before {
background-color: #dc4a38;
}
.social-btns.btn.pinterest:before {
background-color: #cc0000;
}
Предварительный просмотр эффекта:

Наконец, мы настроим переходы для кнопок, в основном используя атрибут transition-timing-function для настройки кривой скорости переходного эффекта, чтобы сделать его визуально гладьше.
Синтаксис transition-timing-function:
<cubic-bezier-easing-function> =
ease |
ease-in |
ease-out |
ease-in-out |
cubic-bezier( <number [0,1]>, <number>, <number [0,1]>, <number> )
Добавьте следующий стиль в style.css:
.social-btns.btn,
.social-btns.btn:before,
.social-btns.btn.fa {
transition: all 0.35s; /* все стили за 0.35 секунды с эффектом easing */
transition-timing-function: cubic-bezier(
0.31,
-0.105,
0.43,
1.59
); /* задаем скорость переходного эффекта */
}
Предварительный просмотр эффекта:

Примечание: Пожалуйста, нажмите на кнопку 'Go Live' в нижнем правом углу, чтобы запустить веб - сервис на порту 8080. Затем вы можете обновить вкладку Web 8080, чтобы просмотреть веб - страницу.
Расширение знаний
Мы можем настраивать не только эффект при наведении на гиперссылку, но и использовать псевдо - классовые селекторы для настройки эффектов для не посещенных, посещенных и выбранных гиперссылок.
a:link {attribute: value;}настраивает эффект для не посещенных гиперссылок.a:visited {attribute: value;}настраивает эффект для посещенных гиперссылок.a:active {attribute: value;}настраивает эффект для выбранных гиперссылок.
Резюме
В этой Лаборатории мы узнали следующее:
- Ссылки на библиотеку иконок Font Awesome
- Псевдо-классовые селекторы CSS
- Свойства трансформации CSS
- Свойство display
- Селектор before
В этой Лаборатории с использованием CSS преобразуется статическая иконка в кнопку с динамическими эффектами. CSS позволяет не только устанавливать единый стиль для повторяющихся стилей, повышая эффективность веб-разработки, но и настраивать различные элементы в соответствии с потребностями веб-страницы, чтобы достичь цели по усовершенствованию вида веб-страницы и повышению ощущения пользования.



