The Wayback Machine - https://web.archive.org/web/20090822072656/http://cssmake.ru:80/component/content/article/7/111.html

css спрайты (css sprite)

( 0 - user rating )
В этой статье я подробно расскажу, что же такое css спрайты, каким образом ними пользоваться и в чем Вы от этого выиграете при создании своего сайта.
css спрайт (css sprite) - одно изображение, которое включает в себя несколько логически связанных изображений, используемых для создания эффекта анимации при наведении курсора на элемент.
Существует два способа для создания эффекта анимации при наведении курсора на ссылку:

Первый способ известен всем и заключается в том, что для ссылки устанавливается фоновое изображение, а при наведении, для псевдокласса :hover это изображение меняется на другое. Тем самым создаётся эффект анимации.

Суть второго способа заключается в том, что используется одно фоновое изображение вместо двух. И эффект анимации создаётся путем изменения положения фонового изображения.

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

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

Использование css спрайтов ускоряет загрузку страницы.

Использование css спрайтов создает дополнительное удобство для управления эффектом, так как намного легче изменить с помощью css положение фона, чем использовать новое изображения.
Второе преимущество:

Простота использования css спрайтов

css спрайты в действии

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

css спрайты для ссылок

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

css спрайт
  1. a.sample-spite {
  2. background:url('/images/sprite_sample.jpg') 0 0 repeat-x;
  3. width:246px;
  4. height:29px;
  5. display:block;
  6. font-size:10px;
  7. line-height:29px;
  8. color:#FFFFFF;
  9. font-weight:bold;
  10. text-transform:uppercase;
  11. text-align:center;
  12. text-decoration:none;
  13. }
  14. a.sample-spite:hover {
  15. background-position:0 -30px;
  16. }
Выше я привел пример css стилей для ссылки, в которой используется css спрайт. Как видите стили очень простые, но нас больше всего интересует код, описынный в строках 2 и 15.
Во второй строке прописывается путь к фоновому изображению, а в 15 строке указано, как должно изменятся положение фона при наведении курсора на ссылку. В этом и состоит весь принцип работы css спрайтов - изменение положения фона.

Теперь можно в html документе для любой ссылки поставить класс sample-spite
<a href="#" class="sample-spite">Пример css спрайта</a>
и в результате в браузере вы увидите следующее:

Различное оформление элементов с помощью css спрайта

Этот способ тоже очень часто используется как и для ссылок. Он заключается в том, чтоб придать различное оформление для элемента в зависимости от его местоположения. Я покажу на примере, как с помощью css спрайтов это можно сделать. В качестве примера я буду использовать следующее изображение:
css спрайт
Как видите здесь я включил в "спрайтовое изображение" три изображения. Далее я создам таблицу с тремя колонками и покажу, как можно с помощью css спрайтов сделать разное оформление для заголовков разных колонок.
  1. .sample-sprites-table td h6
  2. background:url('/images/sprite_sample_2.gif') 0 0 no-repeat;
  3. padding:0 0 0 25px;
  4. font-size:10px;
  5. line-height:18px;
  6. color:#000000;
  7. font-weight:bold;
  8. text-transform:uppercase;
  9. }
  10. #sample-column-2 h6
  11. background-position:0 -19px;
  12. }
  13. #sample-column-2 h6
  14. background-position:0 -38px;
  15. }
  1. <table class="sample-sprites-table">
  2. <tr>
  3. <td><h6>Заголовок css спрайта</h6></td>
  4. <td id="sample-column-2"><h6>Заголовок css спрайта 2</h6></td>
  5. <td id="sample-column-3"><h6>Заголовок css спрайта 3</h6></td>
  6. </tr>
  7. </table>
Как видите, здесь код тоже очень простой для понимания, большинство стилей используется для оформления стилей заголовков. По умолчанию, для всех заголовков шестого уровня я установил фоновое изображение, показанное выше. И далее с помощью id для колонок и изменения положения фона, я изменил оформление заголовков в зависимости от того, в какой колонке он находится.
Заголовок css спрайта
Заголовок css спрайта 2
Заголовок css спрайта 3
Этот способ применения css спрайтов отличается от предидущего тем, что в первом примере изменяется положение фонового изображения в зависимости от действия (в нашем случае наведение курсора на ссылку), а во втором - в зависимости от расположения заголовка.

Комментарии  

 
+5 # Андрей 2009-05-28 15:39 спасибо, очень полезная статья Ответить | Ответить с цитатой | Цитировать
 
 
+2 # Максим 2009-06-02 05:12 Эти спрайты каг бы заменяют onmouseover ? Ответить | Ответить с цитатой | Цитировать
 
 
+2 # ni_x 2009-06-02 13:27 Да, они кагбэ говорят нам, что можно сделать вот такое не используя скрипты. Ответить | Ответить с цитатой | Цитировать
 
 
-2 # Amenothis 2009-07-21 10:20 Херня. Если я перестану использовать hover и буду обрабатывать картинку скриптом - это перестанет быть спрайтом? ололо Ответить | Ответить с цитатой | Цитировать
 
 
0 # AlexP 2009-07-21 15:56 Только вот с использованием CSS… оно и понятно: сейчас и скрипты никто не отключает, и компьтеры мощные. Но красиво такое решение, однако. И второе, и самое главное - такой прием - для тех, кто использует "правильные" CMS. Ответить | Ответить с цитатой | Цитировать
 
 
+1 # Игорь 2009-06-04 19:11 Огромнейшее спасибо! Автор просто супер! Ответить | Ответить с цитатой | Цитировать
 
 
0 # ni_x 2009-06-04 19:51 спасибо. радует :)

Заходите на cssclub.ru будем делать сеть для верстальщиков.
Ответить | Ответить с цитатой | Цитировать
 
 
-4 # Xarakiry 2009-06-26 14:00 Спасибо АФТАР! буду применять на своем блоге stroimsayt.com Ответить | Ответить с цитатой | Цитировать
 

Добавить комментарий


Защитный код
Обновить

odnaknopka.ru/kolyan.cz
Morty Proxy This is a proxified and sanitized view of the page, visit original site.

Переводы


Адвокат по семейным спорам. развод раздел Москва тел: (499) 246-86-51
Восстановление удалённых файлов в центре SAVEinfo.ru

Selectutorial

Селекторы в действии

listutorial

Изображения для маркеров списка

Кема Клаб представляет ароматизация арома лампы
статьи
Morty Proxy This is a proxified and sanitized view of the page, visit original site.