CSS Спрайты изображений
Что такое спрайты изображений?
Спрайт изображений - это набор изображений, помещенных в одно изображение.
Веб-страница с большим количеством изображений может долго загружаться и генерирует несколько запросов к серверу.
Использование спрайтов изображений уменьшит количество запросов к серверу и сэкономит пропускную способность.
Спрайты изображений - простой пример
Вместо того, чтобы использовать три отдельных изображения, мы используем это одно изображение ("img_navsprites.gif"):
![]()
С помощью CSS мы можем показать только ту часть изображения, которая нам нужна.
В следующем примере CSS указывает, какую часть изображения "img_navsprites.gif" необходимо показать:
Пример
            #home
            {
             
            width: 46px;
              height: 44px;
             
            background: url(img_navsprites.gif) 0 0;
            }
        Попробуйте сами »
    Объяснение примера:
<img id="home" src="img_trans.gif">- Определяет только маленькое прозрачное изображение, потому что атрибут src не может быть пустым. Отображаемое изображение будет фоновым изображением, которое мы указываем в CSSwidth: 46px; height: 44px;- Определяет часть изображения, которую мы хотим использоватьbackground: url(img_navsprites.gif) 0 0;- Определяет фоновое изображение и его положение (left 0px, top 0px)
Это самый простой способ использовать спрайты изображений, теперь мы хотим расширить его, используя ссылки и эффекты наведения.
Спрайты изображений - создание списка навигации
Мы хотим использовать изображение спрайта ("img_navsprites.gif") для создания списка навигации.
Мы будем использовать список HTML, потому что он может быть ссылкой, а также поддерживает фоновое изображение:
Пример
            #navlist {
  position: relative;
}
            
#navlist li {
  margin: 0;
  padding: 0;
  list-style: none;
  position: absolute;
              top: 0;
}
            #navlist li, #navlist a {
  height: 44px;
  display: block;
}
            
            #home {
  left: 0px;
  width: 46px;
  background: url('img_navsprites.gif')
            0 0;
}
            
#prev {
  left: 63px;
  width: 43px;
  background: url('img_navsprites.gif') -47px 0;
}
            
#next {
  left: 129px;
  width: 43px;
  background: url('img_navsprites.gif')
            -91px 0;
}
        
        Попробуйте сами »
    Объяснение примера:
- #navlist {position:relative;} - положение установлено относительно, чтобы позволить абсолютное позиционирование внутри него
 - #navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;} - margin и padding установлены 0, list-style удалён, и все элементы списка расположены в absolute
 - #navlist li, #navlist a {height:44px;display:block;} - высота всех изображений 44px
 
Теперь начинаем позиционировать и стилизовать каждую конкретную часть:
- #home {left:0px;width:46px;} - Расположен полностью слева, а ширина изображения составляет 46px
 - #home {background:url(img_navsprites.gif) 0 0;} - Определяет фоновое изображение и его положение (left 0px, top 0px)
 - #prev {left:63px;width:43px;} - Расположен 63px справа (#home из 46px + некоторое дополнительное пространство между элементами), и ширина 43px.
 - #prev {background:url('img_navsprites.gif') -47px 0;} - Определяет фоновое изображение 47px справа (#home из 46px + 1px разделитель строк)
 - #next {left:129px;width:43px;} - Расположен 129px справа (начало из #prev 63px + #prev из 43px + экстра пространство) и ширина 43px.
 - #next {background:url('img_navsprites.gif') -91px 0;} - Определяет фоновое изображение 91px справа (#home из 46px + 1px разделитель строк + #prev ширина 43px + 1px разделитель строк)
 
Спрайты изображений - Эффект наведения
Теперь мы хотим добавить эффект наведения в наш список навигации.
Совет: Селектор :hover можно использовать для всех элементов, а не только для ссылок.
Наше новое изображение ("img_navsprites_hover.gif") содержит три навигационных изображения и три изображения для использования при наведении:
![]()
Поскольку это одно изображение, а не шесть отдельных файлов, не будет задержки загрузки, когда пользователь наводит курсор на изображение.
Мы только добавляем три строки кода, чтобы добавить эффект наведения:
Пример
            #home a:hover {
  background: url('img_navsprites_hover.gif') 0 -45px;
}
            
#prev a:hover {
  background: url('img_navsprites_hover.gif') -47px
            -45px;
}
            
#next a:hover {
  background: url('img_navsprites_hover.gif') -91px
            -45px;
}
        Попробуйте сами »
    Объяснение примера:
- #home a:hover {background: transparent url('../images/img_navsprites_hover.gif') 0 -45px;} - Для всех трех изображений при наведении мы указываем одну и ту же позицию фона, только на 45 пикселей ниже
 

        