Решил написать статью об спрайтах (Css Sprites). Статью о них вроде бы никто не писал здесь.
Итак. Спрайты - это изображение, на котором изображены другие картинки, например кнопки или иконки. Пример: BB коды в CKEditor'e
Для чего же их используют?
Они позволяют увеличить скорость загрузки тех или иных картинок, которые вы поместили в изображения
Уменьшается объем тех изображений и происходит сжатие.
Я не советую делать весь сайт из спрайтов, так как потом будут большие проблемы.
Пример: Вы потратили кучу времени, чтобы собрать все картинки и поместить их в одно изображение. Вам придется менять множество классов. А если захотите поменять тот или иной объект вам опять придется создавать новый спрайт. Думаю, поняли.
CSS Спрайты нужно использовать у схожих объектов (кнопки, иконки и др).
Перейдем к практике.
Допустим, у нас есть две кнопки соц. сетей (Вк и Twitter). Для уменьшения объема страницы поместим изображения в одну картинку.
Ненужно карячиться в паинте или ФШ, для этого есть специальные сервисы, CSS Sprites Генераторы
Я пользуюсь
этим.
Легкий и простой интерфейс. Все что нам нужно.
Берем эти две "кнопки" и загружаем. Можете выбрать для себя подходящие функции, я обычно ничего не меняю.
Теперь качаем полученный спрайт и загружаем на фтп (или куда вам угодно).
Допустим, он (спрайт) располагается по следующему пути: images/sprite.png
Теперь CSS и HTML
Это код кнопок. vk - кнопка Вк; tw - кнопка Твиттер
Code:
<a href="vk"><span class="vk"> </span></a>
<a href="tw"><span class="tw"> </span></a>
CSS
У нас есть два класса:
.vk и .tw
Для них нужно указать бэкграунд (т.е. сам спрайт и расположение расположение фона).
Заново открываем страницу с генератором, смотрим, что нужно указать для каждого элемента:
Code:
vk - background-position: 0px 0px;
tw - background-position: 0px -50px;
Я не буду использовать отдельно backgpound-position, а помещу его в background.
Code:
.vk {
background: url(images/sprite.png) 0 0px; /* 0 0px это и есть background-position*/
}
.tw {
background: url(images/sprite.png) 0 -50px; /* 0 -50px это и есть background-position*/
}
На этом все