Приветствую вас на моем блоге. Сегодня я хотел бы вам показать пошагово, как можно сверстать на html и css кнопки социальных сетей. Начнем с полного нуля и в конце получим нужный результат. Вперед!
Разметка и базовые стили
Итак, поскольку мы создаем блок с иконками социальных сетей, то наш блок назовем share (поделиться), так как для этого в основном эти иконки и ставят (хотя иногда это просто ссылки на группы). Далее нужно указать содержимое этого контейнера.
Добавим в html-файл такой код:
<div class="share"> <i>Соцсети</i> <a href = "#" class = "social social-vk"></a> <a href = "#" class = "social social-fb"></a> <a href = "#" class = "social social-tw"></a> </div>
В адресах ссылок я просто поставил решетку. Конечно, при использовании в реальности у каждой ссылки должен быть прописан рабочий адрес, по которому осуществится переход.
Допустим, у нас будет 3 социальных сети – Вконтакте, Фейсбук, Твиттер. Перед ними выводим слово, а далее размещаем 3 ссылки. Все они будут иметь одинаковый класс – social
, но также каждая гиперссылка получит свой, уникальный класс.
Добавим пока что вот такие стили:
.share {
width: 280px;
margin: 0 auto;
padding: 10px;
background: #D3CDEE;
}
.share i {
margin-right: 15px;
color: black;
text-transform: uppercase;
}
Мы немного оформили сам контейнер для ссылок (размеры, отступы, фон) и надпись.
Оформляем иконки
Теперь самое время поработать с ссылками, а точнее, с их общим классом – social
. Очевидно, что иконки должны располагаться в ряд, иметь одинаковые размеры ширины и высоты, отступы и какой-нибудь фон. Вот это все мы и пропишем:
.social {
display: inline-block;
width: 40px;
height: 40px;
background: #bdc3c7;
vertical-align: middle;
margin-right: 10px;
}
Свойством display: inline-block
мы сделали так, что наши ссылки преобразовались в блочные элементы, но в то же время сохранили способность стоять в ряд. Далее указываем размеры и отступ справа, чтобы блоки не прилегали слитно друг к другу.
Хорошо, а для чего нам vertical-align: middle
? Это свойство выровняет текст в контейнере так, что он будет ровно по центру по вертикали. Также зададим нашим ячейкам какой-нибудь фон, чтобы визуально видеть их уже на этом этапе. Получилась заготовка. Самое время наконец добавить иконочки.
Финальный этап
Нам осталось разместить в каждый из подготовленных блоков свою иконочку, которая идентифицировала бы ту или иную соц. сеть. Для этого я предлагаю воспользоваться самым правильным методом – подключить картинку-спрайт и с помощью позиционирования фона расставить все по своим местам.
Короче, нам нужно такое изображение. У меня оно примерно 120 на 40.
В css-стили добавляем следующие правила:
.social-vk{
background: url(icon.png);
}
.social-fb{
background: url(icon.png) -40px 0;
}
.social-tw{
background: url(icon.png) -78px 0;
}
Получаем на выходе полностью оформленный блок с иконками.
Вы поняли, как мы это получили? Если нет, то объясняю. Каждая ссылка блок имеет размер 40 на 40. Соответственно, когда мы задаем для него фоновое изображение 120 на 40, то блок просто не может вместить его полностью, и в результате вмещает столько, сколько может.
По умолчанию в данном случае будут взяты первые 40 пикселей ширины и высоты фонового изображения, но с высотой и так все в порядке – изображение полностью влезает в блоки по высоте. Соответственно, остается только прописать позицию фона для иконок фейсбука и твиттера.
Записав в фоне так: background: url(icon.png) -40px 0
, мы явно указываем, что для блока social-fb
, фоновая картинка должна отобразиться именно с указанного положения – сорока пикселей по ширине влево и по высоте без смещения, потому что оно не нужно. Вот так вот все просто, на самом деле.
Что еще можно сделать?
Может быть, вы еще как-то дополнительно хотите оформить блок социальных сетей. Есть несколько идей. Во-первых, можно добавить всем иконкам скругление углов.
.social{
Border-radius: 5px;
}
Во-вторых, можно добавить им рамку.
border: 3px solid purple;
По дизайну нам в данном случае подойдет фиолетовая, мне кажется. Также вы можете скруглить углы у самого контейнера с ссылками.
Опять же, вариантов оформления много. Ну и, конечно, вы легко можете поменять цвета. В этой статье я предлагаю вам такой вариант оформления, но теперь вы легко можете сделать по-своему: желтые, зеленые, красные и любые другие иконки.
Итог
Как видите, даже самостоятельно можно очень легко добавить на сайт социальные кнопки, а помогут нам в этом html и css. По крайней мере, визуально мы наши иконки можем оформить так, как нужно по дизайну каждого конкретного сайта.
На этом я сегодняшнюю статья-урок заканчиваю. В следующий раз создадим на css еще что-нибудь
При малом разрешении экрана — иконки не кликабельны. Нет адаптации к мобильным.
Как адаптировать?