Видеоуроки с ответами на вопросы: как создать сайт, как сделать дизайн сайта, как продвинуть его в сети, а так же css, .htacces, seo, php, html и многое другое.
Главная страница>>статьи css>>css спрайты в оформлении меню / css sprite in menu

css спрайты в оформлении меню / css sprite in menu

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

Css спрайт – это использование частей одного изображения для создания эффекта анимации. Ни какой особой сложности в использовании css sprite не представляет. Чаще всего используется для ссылок.

Многим веб-мастерам хочется создать красивое меню, когда при наведении курсора меняется к примеру цвет кнопки (картинки), то чаще всего данное решение реализуют с помощью псевдокласса :hover, когда при наведении на объект меняется картинка. В этом варианте используют два изображения.

Css-код:
.effect {
font-family: verdana;
font-size: 15px;
width:90px;
height:110px;
padding:25px
}
.effect a{
background:url(1/image1.gif) no-repeat ;
width:90px;
height:90px;
display: block;
position:absolute
}
.effect a:hover{
background:url(1/image2.gif) no-repeat
}
Смотреть html-версию примера.

Данное решение имеет один весомый минус: картинка начинает подгружаться, а это:
а) снова запрос на сервер
б) картинка может подгрузиться не сразу и испортить всю «малину».

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

Использование же css спрайта (css sprite) имеет большой плюс: это чистый css.

Проще говоря, это изменение позиции изображения в заданном размере при наведении и при отсутствии действия. Например, ссылке задается стиль, где в параметре прописано background-position:0 0, а при наведении позиция изображения уже меняется на 90 пикселей вверх: background-position:0 -90px;

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

css sprite sample


Css-код:
a.sprite {
background:url(1/sprite-image.jpg) 0 0 no-repeat;
display:block;
width:90px;
height:90px;
margin-left:20px
}
a.sprite:hover{
background-position:0 -90px;
}
Смотреть html-версию примера.

Код css-sprite`а еще проще предыдущего. Наша ссылка размерами 90х90. В не активном состоянии она «берет» часть изображения с заданными первоначальными размерами. При наведении курсора происходит смещение изображения вверх на 90 пикселей.

Вот в принципе и все. Использование css sprites это:
1) Валидно.
2) Удобно.
3) Меньше кода в самой страничке.
4) Для кроссбраузерности в некоторых случаях придется помучаться (впрочем как и всегда).

Дата публикации: 2009-08-15 Просмотров: 2262 Автор: Сергей печатная версия


Комментарии к статье:

Автор комментария: SS
Дата: 2010-02-12 14:36:11 ip-адрес:(91.185.229.33)
реализация ясна

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



Символов осталось:

Удалите слово "форма" и введите сумму красных чисел на изображении: