русский  עברית
tadam logo
backgroundbackground-attachmentbackground-colorbackground-imagebackground-positionbackground-repeatborderborder-bottomborder-bottom-colorborder-bottom-styleborder-bottom-widthborder-colorborder-leftborder-left-colorborder-left-styleborder-left-widthborder-rightborder-right-colorborder-right-styleborder-right-widthborder-styleborder-topborder-top-colorborder-top-styleborder-top-widthborder-widthoutlineoutline-coloroutline-styleoutline-widthheightmax-heightmax-widthmin-heightmin-widthwidthfontfont-familyfont-sizefont-stylefont-variantfont-weightcontentcounter-incrementcounter-resetquoteslist-stylelist-style-imagelist-style-positionlist-style-typemarginmargin-bottommargin-leftmargin-rightmargin-toppaddingpadding-bottompadding-leftpadding-rightpadding-topbottomclearclipcursordisplayfloatleftoverflowpositionrighttopvisibilityz-indexpage-break-afterpage-break-beforepage-break-insideborder-collapseborder-spacingcaption-sideempty-cellstable-layoutcolordirectionletter-spacingline-heighttext-aligntext-decorationtext-indenttext-transformvertical-alignwhite-spaceword-spacing
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

Примеры CSS

CSS Изображение спрайт

Изображение спрайт

Изображение-спрайт это коллекция изображений, содержащяяся в одном изображении.

Веб-страница с большим количеством изображений может занять много времени для загрузки и генерирует несколько запросов серверу.

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

Изображение спрайт - Простой пример

Вместо использования трех отдельных изображений, мы используем это одно изображение ("img_navsprites.gif"):

navigation images

С помощью CSS, можно показать, только часть изображения, которое нам нужно.

В следующем примере CSS определяет, какие части изображения "img_navsprites.gif" показать:

Пример 1

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<style>
     img.home { width:46px; height:44px; background:url(/images/img_navsprites.gif) 0 0; }
     img.next { width:43px; height:44px; background:url(/images/img_navsprites.gif) -91px 0; }
</style>
</head>
<body>
<img class="home" src="/images/img_trans.gif" width="1" height="1" /><br /><br />
<img class="next" src="/images/img_trans.gif" width="1" height="1" />
</body>
</html>
Результат выполнения кода выше:

Объяснение примера:

  • <img class="home" src="/images/img_trans.gif" /> - Определяет только небольшой прозрачный рисунок, так как атрибут src не может быть пустым. Отображаемое изображение будет фоновым изображением, указываем в CSS
  • width:46px; height:44px; - Определяет часть изображения, которое мы хотим использовать
  • background:url(/images/img_navsprites.gif) 0 0; - Определяет фоновое изображение и его положение (слева 0px, сверху 0px)

Это самый простой способ использования изображений-спрайтов, теперь мы хотим расширить использование с помощью эффекта ссылок и наведения.

Изображение спрайт - создание списка навигации

Мы хотим использовать изображение-спрайт ("img_navsprites.gif") для создания списка навигации.

Мы будем использовать список HTML, потому что он может быть ссылкой, а также для поддержки фонового изображения:

Пример 2

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<style>
     #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; }
     #home{ background:url('/images/img_navsprites.gif') 0 0;}

     #prev{ left:63px; width:43px; }
     #prev{ background:url('/images/img_navsprites.gif') -47px 0; }

     #next{ left:129px; width:43px;}
     #next{ background:url('/images/img_navsprites.gif') -91px 0; }
</style>
</head>
<body>
<ul id="navlist">
  <li id="home"><a href="#"></a></li>
  <li id="prev"><a href="#"></a></li>
  <li id="next"><a href="#"></a></li>
</ul>
</body>
</html>
Результат выполнения кода выше:

Объяснение примера:

  • #navlist{ position:relative; } - позиция установленна на относительную, позволяющюю осуществлять абсолютное позиционирование внутри
  • #navlist li{ margin:0; padding:0; list-style:none; position:absolute; top:0; } - поля и заполнение установлены в 0, стиль списка удален, и все элементы списка являются абсолютно-позиционируемыми
  • #navlist li, #navlist a{ height:44px; display:block; } - высота всех изображений 44px

Теперь начнем позиционирование и стилизацию для каждой конкретной части:

  • #home{ left:0px; width:46px; } - Расположем все в крайнее левое положение, и ширина изображения - 46px
  • #home{ background:url(img_navsprites.gif) 0 0; } - Определяет фоновое изображение и его положение (слева 0px, сверху 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') no-repeat -91px 0; } - Устанавливает фоновое изображение 91px вправо (#home ширина 46px + 1px линия разделения + #prev ширина 43px + 1px линия разделения )

Изображение спрайт - Эффект наведения

Теперь мы хотим добавить эффект наведения для нашего списка навигации.

Наше новое изображение ("img_navsprites_hover.gif") содержит три навигационных изображения и три изображения, используемых для эффектов наведения:

navigation images

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

Мы только добавили три строки кода, чтобы добавить эффект наведения:

Пример 3

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<style>
     #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; }
     #home{ background:url('/images/img_navsprites.gif') 0 0;}
     #home a:hover{ background: url('/images/img_navsprites_hover.gif') 0 -45px; }

     #prev{ left:63px; width:43px; }
     #prev{ background:url('/images/img_navsprites.gif') -47px 0; }
     #prev a:hover{ background: url('/images/img_navsprites_hover.gif') -47px -45px; }

     #next{ left:129px; width:43px;}
     #next{ background:url('/images/img_navsprites.gif') -91px 0; }
     #next a:hover{ background: url('/images/img_navsprites_hover.gif') -91px -45px; }
</style>
</head>
<body>
<ul id="navlist">
  <li id="home"><a href="#"></a></li>
  <li id="prev"><a href="#"></a></li>
  <li id="next"><a href="#"></a></li>
</ul>
</body>
</html>
Результат выполнения кода выше:

Объяснение примера:

  • Так как элемент списка содержит ссылку, мы можем использовать псевдо-класс :hover
  • #home a:hover{ background: transparent url(/images/img_navsprites_hover.gif) 0 -45px; } - Для всех трех изображений наведения зададим тоже положение фона, только 45px дальше вниз
Была ли эта информация полезной?
   

Комментарии