Квадратные иконки социальных сетей. Кнопки социальных сетей с использованием CSS спрайтов (оптимизация изображений). Разметка и базовые стили

Хорошую вещь я откопал. Интерфейсные иконки, заключенные в один спрайт. Если кто не знает, что такое спрайт - это одна картинка, в которой есть несколько изображений, отображающиеся на сайте отдельно посредством css. Не знаю, понятно ли я объяснил, но вы на примере этой сборке можете узнать, что такое спрайт.

Преимущества спрайтов

Давно я не выкладывал иконки, наверное потому, что все иконки, которые были мне нужны уже были на моем сайте:)) но вот понадобились иконки в одном спрайте и я нашел эти и делюсь ими с Вами. Кстати отличительная черта и самый существенный плюс спрайта, это то, что если загрузилась картинка спрайт один раз, то все элементы этого спрайта больше не будут подгружатся и соответственно будут уменьшать скорость html страницы. Обычно спрайты используют для кнопок, которые меняются при наведении. Иногда бывает такое, что кнопка в обычном состоянии и кнопка при наведении - это две разные картинки и вы могли заметить на каких-либо сайтах, когда наводишь на кнопку, изображение появляется не сразу - оно подгружается. Со спрайтом такой проблемы не будет. Еще один плюс спрайтов - экономия места. Скажем у вас есть какой то плагин, типа слайдера, и к нему идут несколько десятков изображений (уголки рамок, сами рамки, стрелки, буллиты, икокни соц сетей и так далее). Так вот, когда они все заключены в одну картинку, это намного удобнее и аккуратнее смотрится, если бы они валялись в папке с изображениями по отдельности.

Что изображено на этих иконках

По обычаю расскажу, какие изображения есть среди этих иконок, чтобы вы могли найти нужную иконки по поиску, который у меня находитсья в главном меню наверху сайта: замок, робот, алмаз или драгоценный камень, монитор, подарок, микрофон, ракета, мороженное, человек, часы, ножницы, иконки всяких социальных сетей и сервисов, гаечные ключи, лук, кошелек, ipad, арбуз, кошелек, джойстик игровой, калькулятор, клоун, лампочка, лук, мусорное ведро или корзина, письмо, глобус, бургер, авто, облако, фотоаппарат и многое многое другое. Всего порядка 100-а изображений.

Подключаются эти иконки очень просто:

1. Подключаем css файл sprite.css таким образом: создаем папку css в корне вашего сайта, закидываем туда этот файл css, а на странице, где будут отображаться иконки между тегами вставляем следующий код:

3. В месте, где вы хотите поставить иконку, вставляем код:

4. Вы можете пользоваться моей демо, там есть все представленные иконки и с помощью google chrome просмотрщика элемента определить название иконки и вставить вместо "название иконки". Допустим, иконка с изображением часов имеет такой код:

Ну я думаю, что разобраться, как вставлять эти икокни из спрайта не сложно, тем более я уже все объяснил:)) Приятного пользования!

Продолжаем социализировать наши сайты.Читателям часто удобно получать обновления блогов прямо в их любимую социальную сеть. Давайте дадим им такую возможность. Для этого нужно зарегистрироваться в этих самых соц.сетях. Можно создать профиль администрации или автора сайта, а можно публичную страницу компании или проекта. В дальнейшем нужно будет регулярно публиковать в новостные ленты профилей новости и обновления сайта, чтобы ваши подписчики могли с ними ознакомится. Это, кстати, удобно делать с помощью установленных нами ранее . Ссылки на социальные профили оформим с помощью приёма CSS sprite или спрайты на CSS.

Что такое CSS спрайты и спрайты в общем?

Спрайты — набор маленьких картинок, которые объединены в одну. Это делается для того, чтобы не загружать 10-20 маленьких легковесных картинок с сервера на компьютер пользователя, а отдать их одним потоком, объединив в один файл. Спрайты в веб-дизайн пришли из игровой индустрии, там они использовались для создания анимированной 2D графики, например стреляющих монстров и т.п.

В дизайне сайтов тоже применяют приём, при котором различные иконки объединяют в один файл, например вот так:

Как можно увидеть в этом примере в один файл собрали не только иконки соц.сетей, но и другие элементы дизайна, такие как стрелочки, кнопки «мне нравится» и т.п. Но объединять абсолютно всю графику, которая используется на сайте в один спрайт не совсем правильно. Лучше поделить элементы на группы и подгружать только необходимые на определённом типе страниц.

На этой картинке я постарался схематически показать принцип работы css спрайтов. В случае когда блок больше фоновой картинки, то она по умолчанию помещается в левый верхний угол, если в css стилях задано no-repeat. Но мы можем менять положение фоновой картинки относительно левого верхнего угла блока. Особенно это полезно, если блок, например, по размеру равен отдельной иконке. У нас семь иконок размером 32х32 каждая. Они расположены по горизонтали, соответственно по вертикали нам положение фона изменять не нужно. Задаём положение фонового рисунка -32 px получаем в блоке иконку , -64 px — иконку Фейсбук и т.д.

Как сделать кнопки-ссылки на профили в социальных сетях?

После регистрации в соответствующих сообществах и в я получил ссылки на профили, адрес моей RSS ленты и ссылку на форму подписки для получения обновлений по почте. Затем я их объединил в следующий код и вставил его в текстовый виджет в панели администрирования WordPress:

В анкоре ссылок в этом коде используется тег : . Именно он и является тем самым блоком, в котором отображается нужная иконка. Сдвиг фонового изображения задаётся в файле стилей style.css через свойство background-position :

/* Кнопки подписки на обновления*/ .spmenu { padding: 0px; margin: 0px; color: #4682B4; text-align: left; font-size: 100%; } .spmenu a, .spmenu a:hover { cursor: pointer; color: #1E90FF; text-decoration: none; font-size: 100%; } .spmenu span { display: inline-block; width: 32px; height: 32px; background: url("images/icons.png") no-repeat; } .spmenu span.sprite_gplus {background-position: 0px 0px;} .spmenu span.sprite_twitter {background-position: -32px 0px;} .spmenu span.sprite_fbook {background-position: -64px 0px;} .spmenu span.sprite_rss {background-position: -96px 0px;} .spmenu span.sprite_email {background-position: -128px 0px;}

Таким образом для каждого элемента внутри класса «spmenu » задаётся фоновое изображение icons.png , которое представляет из себя набор иконок. Заметьте, что является строчным встроенным элементов по спецификации HTML, поэтому, чтобы задать ему строгие размеры (ширину и высоту), мы должны изменить способ его отображения на блочный в CSS свойствах (строчка: display: inline-block; ). Размеры блока 32х32 как раз соответствуют формату наших иконок.

Часто вместо используют теги , , и т.п., я считаю этот подход неправильным. Зачем изменять стили стандартных тегов, если есть универсальный . А тег вообще создаёт лишний запрос к серверу, а мы как раз, применяя спрайты, пытаемся сократить число этих запросов.

Где взять иконки для спрайта?

  1. Нарисовать самому.
  2. Поискать в поисковике среди картинок.
  3. В Сети есть специальные подборки иконок, которые часто раздаются бесплатно.
  4. Многие соц.сети и сервисы выставляют на сайтах официальные логотипы и иконки, которые можно использовать в своих приложениях.
  5. Чтобы сделать файл спрайтов иконок соц.сетей автоматически, можно воспользоваться сервисом . Выбираем иконки в нужном порядке, сохраняем архив со скриптом, распаковываем и видим картинку icons.png — готовый файл спрайтов.

Спрайты кроме отображения иконок полезны при разработке анимированного меню, когда при наведении на его пункт, он либо затемняется, либо загорается. Тогда в файле спрайтов хранят два набора кнопок и по событию «наведение мыши» динамически при помощи JS меняют положение фонового рисунка.

Обещанное вначале заметки меню кнопок-ссылок на каналы получения обновлений сделано, на этом заканчиваю статью. Подписывайтесь на обновления, самое интересное только начинается.

Онлайн ресурсы для создания CSS спрайтов , например http://spritepad.wearekiss.com/ или http://www.spritecow.com/ . Впрочем, вы без труда найдете те, что подходят вам. Здесь я буду использовать уже готовые CSS спрайты . Вот они:

Структура html

В общий контейнер div помещены контейнеры div социальных кнопок с переходом.

CSS структура для использования спрайтов

body{ background: url("fon.png"); color: #1aa5ca; } .box { margin: 250px; padding: 25px; background: #; text-indent: -9999px; display: inline-block; } .click{ background: url("click.png"); width: 200px; height: 86px; display: block; } .vk{ background: url("vc.png"); width: 51px; height: 52px; margin: 10px; background-position: 0 0px; transition: opacity 0.5s; -moz-transition: opacity 0.5s; /* Firefox 4 */ -webkit-transition: opacity 0.5s; /* Safari and Chrome */ -o-transition: opacity 0.5s; /* Opera */ opacity: 0.6; float: left; } .vk:hover { background: url("vc.png"); width: 51px; height: 52px; background-position: 0 -51px; opacity: 1; } .ya{ background: url("ya.png"); width: 50px; height: 50px; margin: 10px; background-position: 0 0px; transition: opacity 0.5s; -moz-transition: opacity 0.5s; /* Firefox 4 */ -webkit-transition: opacity 0.5s; /* Safari and Chrome */ -o-transition: opacity 0.5s; /* Opera */ opacity: 0.6; float: left; } .ya:hover { background: url("ya.png"); width: 50px; height: 50px; background-position: 0 -50px; opacity: 1; } .ma{ background: url("ma.png"); width: 51px; height: 52px; margin: 10px; background-position: 0 0px; transition: opacity 0.5s; -moz-transition: opacity 0.5s; /* Firefox 4 */ -webkit-transition: opacity 0.5s; /* Safari and Chrome */ -o-transition: opacity 0.5s; /* Opera */ opacity: 0.6; float: left; } .ma:hover { background: url("ma.png"); width: 51px; height: 52px; background-position: 0 -51px; opacity: 1; }

Указываем background-position: 0 0px;. Заметьте, я ставлю opacity 0.6, немного прозрачности. При наведении opacity: 1;, все это происходит за (0,5s) transition: opacity 0.5s;. При наведенииизменилась позиция изображения background-position: 0 -51px;.

Используя данную технику можно значительно оптимизировать изображения (меньше обращений к серверу).

P.S. Если будут вопросы пишите!

Приветствую вас на моем блоге. Сегодня я хотел бы вам показать пошагово, как можно сверстать на html и css кнопки социальных сетей. Начнем с полного нуля и в конце получим нужный результат. Вперед!

Разметка и базовые стили

В адресах ссылок я просто поставил решетку. Конечно, при использовании в реальности у каждой ссылки должен быть прописан рабочий адрес, по которому осуществится переход.

Добавим пока что вот такие стили:

Share {
width: 280px;
margin: 0 auto;
padding: 10px;
background: #D3CDEE;
}
.share i {
margin-right: 15px;
color: black;
text-transform: uppercase;
}

Мы немного оформили сам контейнер для ссылок (размеры, отступы, фон) и надпись.

Оформляем иконки

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 еще что-нибудь

Октябрь 29, 2019 Запись была обновлена

Юрий Немец

Эффекты кнопок социальных сетей для сайта

Как Вы думаете, можно ли совместить кнопки социальных сетей и изображения? Чтобы и то и другое смотрелось очень красиво и креативно. Да, можно это сделать очень интересным способом. И даже не одним, а несколькими. А если быть точнее, то в статье Вы найдете 12 способов сделать классные эффекты для кнопок социальных сетей при наведении на изображение. В некоторых случаях необходимо не просто наведение, а еще и клик мыши, что также добавляет интерактива. Необычный способ выделить свой сайт, используя именно такие эффекты при наведении на изображение.

Все 12 примеров смотрите и скачивайте по ссылке ниже:

Скачать

Кстати, по поводу эффектов при наведении, на сайте по этой теме есть еще парочка статей:

Понравился эффект — используйте!

Например, мне пришелся по душе первый эффект. Наведите на изображение ниже, чтобы увидеть эффект.

(наведите на изображение)

Довольно привлекательный способ выделить самые важные изображения как на сайте так на одностраничном продающем сайте. Но, как я уже писал, эффектов значительно больше (12!).

Шаг 1 — HTML

Для иконок, которые Вы видите на кнопках социальных сетей, используется FA (Font Awesome). Подключаются эти иконки одной строкой между блоками :

1 <link rel = "stylesheet" href = "http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" >

После того, как Вы скачали все исходники, необходимо выбрать понравившийся эффект. Мой эффект находится в файле index.html . В этом же файле находятся и все необходимые стили для того, чтобы создать эффект при наведении.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <div class = "image-effect-fall-back" > <div class = "share-layer" > <a href = "#" class = "share-button share-via-vk" > <i class = "fa fa-vk" > Вконтакте </ a > <a href = "#" class = "share-button share-via-facebook" > <i class = "fa fa-facebook" > Facebook </ a > <a href = "#" class = "share-button share-via-twitter" > <i class = "fa fa-twitter" > Twitter </ a > </ div > <div class = "image-layer" > <img src = "images/tree.jpg" width = "500" alt = "California surf" > </ div > </ div >

Вся необходимая структура есть. Осталось задать только стили в CSS. Поэтому переходим ко 2-му и, одновременно, последнему шагу.

Шаг 2 — CSS

Стили находятся в каждом HTML файле между блоками . То есть в каждом файле с разными эффектами, в этом блоке вверху документа находятся соответствующие стили.

Вам необходимо взять эти стили и поместить их в Ваш файл стилей:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 .image-effect-fall-back { width : 500px ; height : 300px ; position : relative ; margin : 0 auto ; -webkit-perspective : 800px ; perspective : 800px ; } .image-effect-fall-back .image-layer{ position : absolute ; top : 0 ; left : 0 ; height : 300px ; -webkit-transition : 0.6s; transition : 0.6s; z-index : 1 ; } .image-effect-fall-back :hover .image-layer{ -webkit-transform : rotateX(70deg) ; transform : rotateX(70deg) ; overflow : visible ; } .image-effect-fall-back .image-layer img { height : 100% ; } .image-effect-fall-back .image-layer :before { content : "" ; position : absolute ; top : 0 ; left : 0 ; width : 100% ; height : 100% ; background : rgba(0 , 0 , 0 , 0.5 ) ; box-shadow : 0 0 100px 50px rgba(0 , 0 , 0 , 0.5 ) ; opacity : 0 ; -webkit-transition : all 0.5s; transition : all 0.5s; -webkit-transform : rotateX(114deg) translateZ(-26px ) translateY(110px ) scale(0.75 ) ; transform : rotateX(114deg) translateZ(-26px ) translateY(110px ) scale(0.75 ) ; -webkit-transform-origin : bottom ; -ms-transform-origin : bottom ; transform-origin : bottom ; } .image-effect-fall-back :hover .image-layer :before { opacity : 0.3 ; } .image-effect-fall-back .share-layer{ position : absolute ; bottom : 100px ; left : 0 ; width : 100% ; height : 100px ; opacity : 0 ; z-index : 10 ; -webkit-transition : 0.6s; transition : 0.6s; -webkit-transform : rotateX(70deg) ; transform : rotateX(70deg) ; } .image-effect-fall-back :hover .share-layer { opacity : 1 ; -webkit-transform : rotateX(0deg) translateY(-70px ) ; transform : rotateX(0deg) translateY(-70px ) ; } /*стили для всех кнопок*/ .share-button{ display : inline-block; text-decoration : none ; color : #ffffff ; padding : 12px ; width : 90px ; border-radius : 2px ; margin : 25px 10px ; } /*цвет кнопок социальных сетей*/ .share-via-vk { background-color : #4C75A3 ; } .share-via-facebook { background-color : #3b5998 ; } .share-via-twitter { background-color : #00aced ; }

Сразу предупреждаю: в некоторых примерах используется jQuery, потому что там, для полного эффекта, необходимо кликнуть на изображение. Вам лишь нужно взять весь JS код, который используется на странице с понравившимся примером.

Внимание! После того, как Вы вставите CSS код в свой файл стилей, кнопки могут отображаться не совсем так, как на примере. Это может быть связано с тем, что в Вашем файле стилей заданы другие стили для элементов и классов, которые используются в демо.

Вывод

Как правило, креатив всегда приветствовался. Я думаю здесь каждый для себя сможет выбрать один эффект из 12 и использовать в дальнейшем в собственных проектах.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то