htmlbook.ru - Для тех, кто делает сайты
Статьи Книги Шаг за шагом Рецепты Форум Графика для Web
Главная страница > Статьи > Рецепты CSS > Эффект перекатывания с помощью стилей

Эффект перекатывания с помощью стилей

Влад Мержевич

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

Эффектом перекатывания называют замену одного изображения другим при наведении на него курсора мыши. То есть, как только курсор оказывается на рисунке, картинка меняется на другую, мышь уводится в сторону и рисунок становится прежним. Обычно для создания эффекта перекатывания применяется JavaScript, но во многих случаях вполне достаточно и CSS.

Псевдокласс hover

Вначале разберем, как делается собственно сам эффект. Для этой цели используется псевдокласс hover, он через двоеточие добавляется к желаемому селектору. Этот псевдокласс определяет стиль элемента, когда на него наводится курсор мыши, что нам как раз и требуется. Увы, но браузер Internet Explorer версии 6 и ниже в данном случае умеет работать только со ссылками, тогда как другие браузеры (в частности, Firefox и Opera) понимают hover и для других элементов. Так что для универсальности кода придется помещать изображение внутрь контейнера <A>. Сам рисунок добавляется и меняется с помощью стилевого параметра background. Алгоритм действий следующий.

  1. Готовится два изображения одинакового размера, одно для исходного вида, а второе — для его замены при эффекте перекатывания.
  2. Исходная картинка добавляется в качестве фонового рисунка к селектору A через стилевой атрибут background со значением url('URI'), здесь URI — путь к графическому файлу.
  3. Присоединяем псевдокласс к селектору A (a:hover) и снова включаем параметр background, но в качестве значения указываем замещающее изображение.
  4. Чтобы ссылка была по размеру картинки, ее следует превратить в блочный элемент с помощью атрибута display со значением block, а также задать высоту и ширину ссылки.

На рис. 1 приведены два изображения: исходное (рис. 1а) и замещающее (рис. 1б).

Рис. 1аа Рис. 1бб

Рис. 1. Картинки для создания эффекта перекатывания

Остается собрать весь код воедино, как показано в примере 1. Чтобы ссылка не вела на какой-то определенный файл, что в данном случае излишне, добавим «заглушку» в виде символа решетки (#) к параметру href тега <A>.

Пример 1. Использование псевдокласса hover

Валидный HTML
Валидный CSS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Эффект перекатывания</title>
<style type="text/css">
A.rollover {
 background: url('1.gif'); /* Путь к файлу с исходным рисунком */
 display: block; /* Рисунок как блочный элемент */
 width: 196px; /* Ширина рисунка */
 height: 183px; /* Высота рисунка */
 border: 1px solid #000; /* Рамка вокруг картинки */
}

A.rollover:hover {
 background: url('2.gif'); /* Путь к файлу с заменяемым рисунком */
}
</style>
</head>
<body>
<p><a href="#" class="rollover"> </a></p>
</body>
</html>

Результат данного примера показан ниже.

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

Эффект перекатывания с одним рисунком

Казалось бы имеется противоречие, ведь эффект перекатывания состоит в замене одного рисунка на другой, как же тогда обойтись одной картинкой? На самом деле изображений будет два (рис. 2), но храниться они будут в одном графическом файле.

Рис. 2

Рис. 2. Изображение с двумя картинками

Смена одного рисунка на другой осуществляется сдвигом изображения по вертикали за счет использования универсального атрибута background или свойства background-position, как показано в примере 2.

Пример 2. Изменение положения рисунка

Валидный HTML
Валидный CSS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Эффект перекатывания</title>
<style type="text/css">
A.rollover {
 background: url('3.jpg'); /* Путь к файлу с исходным рисунком */
 display: block; /* Рисунок как блочный элемент */
 width: 151px; /* Ширина рисунка в пикселах */
 height: 40px; /* Высота рисунка */
}

A.rollover:hover {
 background-position:
  0 /* Смещение по горизонтали */
  -40px; /* Смещение вверх по вертикали */
}
</style>
</head>
<body>
<p><a href="link.html" class="rollover"></a></p>
</body>
</html>

Результат данного примера показан ниже.

Для селектора A устанавливается фоновое изображение через параметр background, ширина (width) совпадает с рисунком, а высота (атрибут height) равна половине высоты изображения. В итоге первоначально должна отображаться зеленая вкладка целиком.

При наведении на ссылку фон смещается вверх на 40 пикселов с помощью свойства background-position и становится видна оранжевая вкладка.

Резюме

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

Статья опубликована: 04.01.2007 Последнее обновление: 04.04.2008

Прежде, чем писать комментарий к статье, примите во внимание следующие моменты.

  1. Не задавайте вопросы в комментариях, для этой цели предназначен форум, где вы получите нужную помощь.
  2. Удаляются любые комментарии, которые:
    • включают множество ошибок;
    • написаны безграмотно;
    • не имеют отношения к данной статье;
    • не содержат никакой полезной информации для посетителей.
  3. Для выделения отдельных слов используйте следующие команды: [b]жирный[/b], [i]курсив[/i], [color=цвет]цветной текст[/color], [tag]тег[/tag], [var]параметр[/var], [code]пример[/code].
  4. Потренироваться в написании комментариев вы можете в песочнице.

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

coder

06.01.2007

Хорошая статья, материал на аналогичную тему есть на www.tigir.com/fastrollovers.htm

off!

12.01.2007

только тут реализация поизящнее и обьяснение более человеколюбивое

bankr

16.01.2007

Давно используется на opera.com

Onik

17.01.2007

5 балов для новичков то что надо. Только есть один минус, высота должна быть не изменной sad. И в опре 6 не подерживаеться - хотя думаю что такой гадостю (Оперой 6) уже давно не пользуеться.

catsmeetman

18.01.2007

ну и не для новичков полезно. оч хорошая статья. ВОзьму на вооружение

SAiNT

23.01.2007

saman, ну, это уже смотря сколько ролловеров на сайте предусматривается smile
имхо данный способ идеален для 1-2 ролловеров, а если делать меню, то лучше по-старинке, через яву.

Алекс

02.02.2007

А почему лучше через яву?

StAnk

11.02.2007

Действительно, спасибо... А сама идея "Эффект перекатывания с одним рисунком" проста и легка... Не-то мучался "кнопка - два рисунка... Один для пассивной кнопки, другой для наведенной мышью... Так если просто тупо навести мышь, что только тогда происходит выкачивание второго рисунка... Это занимает какое-то время и в результате - косяк!!!!"

Шурик

18.02.2007

а как сделать, rollover одной картинкой чтобы рисунок менялся не при наведении на него, а при наведении на слово, которое является ссылкой и стоит рядом с ним? А сам рисунок ссылкой не является. С двумя картинками-все понятно. А с одной?
И еще - по моему, можно как-то очень просто на яве в одну строчку сделать прелоад этих картинок, тогда можно и через две картинки. Кто помнит синтаксис, как?

wassil

21.02.2007

спасибо за полезную и простую ролловеру,
гениально!

Драконыч

23.02.2007

Авторам сайта и статей - респект и уважуха!!!
Мне препод на курсах не так понятно объясняет , как написано здесь. Спасибо! Я много полезного для себя почерпнул здесь smile

Денис Воронов

27.02.2007

Оно, конечно, хорошо, только у меня, например, для тестирования сайтов стоит Opera 5. Она и не думает поддерживать такие эффекты. Хотя, если Netscape 7 это покажет, то на остальные броузеры, наверное, можно забить?

MSIE 6 22866773 72.55%
MSIE 5 4971741 15.77%
Netscape 7 2594670 8.23%
Other 570559 1.81%
Netscape 4 320227 1.01%
MSIE 4 140963 0.44%
Netscape 3 24746 0.07%
Opera 6 18380 0.05%
MSIE 3 4285 0.01%
Opera 5 867 0.00%
AOL 4 319 0.00%
Netscape 2 276 0.00%
Opera 4 43 0.00%
MSIE 2 21 6.66%
Opera 3 17 5.39%
WebTV 1 5 1.58%
Amiga-AWeb 3 4 1.26%
AOL 3 1 3.17%
IBrowse 1 1 3.17%
xChaos Arachne 1 1 3.17%

ArtLeo

01.03.2007

Позвольте выразить свою благодарность и уважение автору за прекрасную статью.

P.S. Не устаю поражаться полезности данного сайта. По моему глубокому убеждению - один из лучших в сети.

iat

14.03.2007

присоединюсь к благодарности.
не раз выручил меня.
спасибо Влад. и если кто-то еще работает над проектом, спасибо всем smile

LD

14.03.2007

Очень изящное решение. А то сидишь, изобретаешь тут всякие процедуры на Javascript для презагрузки картинок...

mel

23.03.2007

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

Максим

25.03.2007

Да, здорово, только я немного запутался с блочными элементами - можно ли используя те-же инструменты разместить несколько таких роловеров в одной строке? block не дает поставить две таких картинки в ряд.

To Onik (17.01.2007)
Можно выйти из ситуации прозрачными пикселями - дополнить ими меньшую высоту.

Влад Мержевич

26.03.2007

2Максим
Используй inline вместо block. Тогда слои встанут по горизонтали.

Тарас

28.03.2007

Классная статья.
На некоторых сайтах менюшки на флеше делают

иса

30.03.2007

Я тоже не как не пойму почему картинка не меняется, хотя адреса картинок разные. В чем прикол?

Киса

30.03.2007

Я только одног не поняла, почему картинка не меняется. В чем прикол.

Роберт Дениско

31.03.2007

Во мучаетесь-то smile Скачали Macromedia Fireworks и там за минуту делаем гораздо более качественные фичи. Лишняя фича, короче.

almarein

31.03.2007

в том и дело, что своими руцями приятнее (:.

а так оста?тся ощущение инкубатора.

TeaR1nG

03.04.2007

Согласен

warwar

12.04.2007

2Денис Воронов: постась lynx и тестируй сайты в нем!

paraLaX

14.04.2007

Отличная статья, правда уже знакомая. В книге "HTML и CSS на примерах" это есть. Не зря я ее приобрел.

Yoon (Latvia)

18.04.2007

Статья СУПЕР! Нмчего лишнего... по поваду браузеров помоему вы ребята бредите. Кто будет в данное время пользоватся Оперой 6? Нахер тесты на ней делать? Опера бесплатна и любой желающий может скачять последнюю версию любово браузера бесплатно, если он не полный дебил... вы ети ефекты есчо через DOS протестируйте...

Zv.r

21.04.2007

Подскажите как сделать чтоб на текущей странице эта кнопка была подсвеченная.
например как здесь http://www.ashwebstudio.com/

r-tem

25.04.2007

2 Zv.r
На каждой странице сайта вверху прописываешь(пример местный беру):
<style type="text/css">
A.rollover#current {
background-position:
0px /* Смещение по горизонтали */
-40px; /* Смещение вверх по вертикали */
}
</style>
А в ссылке добавляешь:
<a href="link.html" class="rollover" id="current"></a>

И он перекрывает правило, прописанное до этого.
На php это проще сделать...Надо привязать класс или id к какой-нибуть переменной...Реализаций несколько, но принцип тотже...

TycoooN

29.04.2007

Те, кто до сих пор использует Оперу 6, знают, на что идут. Поэтому с их стороны ожидать того, что на странице все будет отображаться идеально, несколько глупо.

PinokkioT

30.04.2007

Влад, штука с перекатом ооочень меня заинтересовала. Решил попробовать меню из нее сваганить с помощью таблички, и, знаете, не получается что-то... Текст, который написан поверх этой кнопочки ну никак не хочет центрироваться по высоте ячейки, прилип наверху и никакие middle не действуют. Как быть? Иль это такой побочный эффект?

Jana

30.04.2007

Денис Воронов, а Вы и Вам подобные не ленились бы своевременно обновлять браузеры! Я насколько знаю сейчас Опера 9.0?! Уже не знаете за че цепляться..sad

Автору статьи.. спасибо!!!!

Влад Мержевич

02.05.2007

2PinokkioT
Если обычный текст надо в ячейке выровнять, используйте vertical-align. Если речь о рисунке идет, то его положение определяется параметром background-position.

2 Zv.r

04.05.2007

а деактивировать е? ещ? можно средствами SSI

Rac3r

05.05.2007

А я столкнулся со следующей проблемой: IE не хочет выводить этот background рисунок меньше 20px в высоту... В FF вс? отлично работает, а в IE вот такой интересный косяк. Никто не сталкивался?

RenTgeN

07.05.2007

Очень интересно, можно ли добиться такого эффекта для картинок с расширениями PNG и фильтром, применяемым для ie6(progid:DXImageTransform.Microsoft.AlphaImageLoader)?

Vector

16.05.2007

Но надо учитывать и недостаток. Если человек зайдет на страницу с этими ролловерами с мобильного телефона, используя Оперу Мини, например, он не увидит этих ссылок вообще! Ни в первом, ни во втором примере. sad Побеждается проблема просто: под ролловерные изображения-ссылки подкладываются обычные изображения-ссылки, которые, кстати, могут выступать как изображения для подмены! smile

Skyangel

22.05.2007

Можно ли в пример дописать свойства что б текст ссылки внутри тега <A> распологался по центру картинки вертикально. С горизонтальным выравниванием проблем нет, и через теги, и стилем, а вертикальное ну никак не получается. Как и у Pinokkio прилип к верхней границе и все. vertical-align почему то не помогает.

Skyangel

25.05.2007

Последний вопрос снимается. Все получилось через vertical-align. У кого проблема вдруг не решается дополнительно смотреть "Пример 16.3" вот отсюда http://stepbystep.htmlbook.ru/?id=58

Влад Мержевич

25.05.2007

vertical-align работает только для встроенных элементов и ячеек таблицы. Учтите это.

Ник

25.05.2007

2Rac3R. насчет картинок меньше 20px в ИЕ это известный глюк.
Подбери подходящий !DOCTYPE и все станет на места.

HTMLCODER.exe

08.06.2007

Ролловер без явы...
Это же МИФ!

HoHo

15.06.2007

Отличный прием. Никакого vertical-align не надо, используем line-height:40px

Дмитрий

18.06.2007

Vector, можно также использовать разделение по типам устройств. Хотя я, как пользователь Opera Mini, предпочитаю самый простой способ: не нагружать сайт лишней графикой.

Денис

19.06.2007

Здравствуйте. А если это не ссылка с рисунком, форма, например:
<form method='POST' action='common.php?type=info'>
<td align="center" height="125" bgcolor="#FFFFFF">
<input type='hidden' name='id' value='EL_B110' >
<input type='hidden' name='item' value='Elegance B110'>
<input type='hidden' name='price' value='<?echo window(1,3); ?>'>
<input type='hidden' name='from' value=''>
<input border='0' src="<? echo window(1,5); ?>" name='I1' type='image' onclick='cAbout(this.form)' >
</td></form>

как в этом случае сделать перекатывание?

HuKuToC (kobel169)

20.06.2007

<a href="link.htm">
<img onmouseover="src='1.gif'" onmouseout="src='2.gif'" src="2.gif">
</a>

Денис

20.06.2007

HuKuToC, Знали бы как вы меня выручили. Это даже намного проще.
Большое спасибо

Сергей

20.06.2007

2Влад Мержевич
огромное спасибо что отписали ссылку на эту статью!
долго ждал,но был уверен что ответите!
Вы из тех людей которых любят и заочно и называют "огромный человек"!
неустанно благодарю!я с Вашей помощью на одном ХТМЛе такую красу построил!!!
поставлю сайт на сервер(через пару недель)напишу адрес..на первый взгляд и не верится,что там один ХТМЛ!Спасибо!Спасибо!

Сергей

22.06.2007

Большое спасибо за интересный материал.
Тоже приверженец html потому очень для меня нужная вещь. Уже применил.

спасибо еще раз!

Михаил

23.06.2007

Скопировал ваш текст примера к себе и рисунки с солнышками. Одна проблема: в моей опере при первом наведении мышкой на рисунок солнца этот рисунок пропадает и все, потом мышку убираю в сторону, появляется опят серое солнце, и только при втором наведении мышкой появляется уже желтое солнце. Т. е. срабатывают все разы кроме первого. Че делать?

Влад Мержевич

25.06.2007

Да, есть такая проблема в Опере, причем еще не во всех версиях она проявляется.

Грин

10.07.2007

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

Frozen

10.07.2007

Подскажите, как модифицировать этот вариант кнопок для просмотра страницы без картинок? Ибо сейчас текущий вариант без катринок показывает только пустые места.

Andi

12.07.2007

2 RenTgeN
используй первый пример, должно работать (может я конечно припоздал)

чтобы избавиться от "подтормаживания" при смене картинок:
<HTML>
<HEAD>
<SCRIPT language="JavaScript" type="text/javascript">
function preloadImages() {
document.preloadImg=new Array();
var i,arg=preloadImages.arguments;
for(i=0; i<arg.length; i++) {
/*
Браузер подкачивает картинки и более не обращается к серверу
*/
document.preloadImg[i]=new Image();
document.preloadImg[i].src=arg[i];
}
}
</SCRIPT>
</HEAD>
<BODY onload="javascript:preloadImages('img1.png', 'img2.png' [,...]);">
...
</BODY>
</HTML>

Диман

13.07.2007

а как можно сделать перекатывание, если это кнопка отправки формы submit?

Andi

14.07.2007

2 Диман
используй JavaScript
<INPUT class="btn_default" type="submit" ...
onmouseover="javascript:this.className='btn_over';"
onmouseout="javascript:this.className='btn_default';">

возможно придеться подгрузить картинки, см. пример выше

Мар

27.07.2007

А если это кнопка отправки в соседний фрэйм?

Andi

31.07.2007

2 Мар
вопрос не совсем корректно задан. вижу два варианта вашего вопроса
1) кнопка отправки с соседнем фрейме
2) отправка данных формы будет происходить в соседний фрейм

в первом случае:
<INPUT ... onclick="javascript:top.frame_name.form_name.submit();" ...>

во втором:
<FORM target="name_frame" ...>
...
</FORM>

PS
оба случая писал от руки (не тестируя), первый случай: могут быть ошибки, возможно придется написать что-то типа: top.frame_name.document.form_name.submit()

Mr. White

11.08.2007

А у меня вот какая проблема, я сделал стили в отдельный файл, все работает, кроме стиля с hover, если этот стиль поместить прямо в <head> каждой странички, то все нормально работает, а в отдельном файле не хочет. Как это можно исправить, помогите?

Kos

21.08.2007

У мну вот такой вот вопрос:
Такой эфект перекатывания создается в основном для менюшки. Как применить такой эфект для ссылок в меню? Какой селектор применить для обозначения той или иной ячейки меню? А есле можно то немогли бы Вы описать технологию создания меню таким образом?.. Пожалуйста ! Я хочу замутить се на сайте http://big-boot.narod.ru такую красивую менюху.

Влад Мержевич

23.08.2007

Эффект перекатывания для создания меню не используется, вы что-то перепутали.

Mr. White

24.08.2007

Влад, а почему эффект перекатывания не работает, когда данные помещены в отдельный файл (style.css, например)?

Влад Мержевич

24.08.2007

На JavaScript надо сделать прелоад изображений.

Mr. White

26.08.2007

>>>На JavaScript надо сделать прелоад изображений.<<<
Как это?

bombua

13.09.2007

to Mr. White

ссылки на картинки проверь

Учащийся

18.09.2007

"я только ондого не пойму сделал как описано выше а второй раз не могу так зделать на той же страничке, адрес рисунка другой а рисунок (!) тотже (!)..."
Такая же история с таким же результатом... Обидно! Обьясните, пожалуста, как прекратить распространение действия на всю страницу? Хотел сделать несколько элементов (разных) способом номер 2, но не получается... Децствие распространяется на (!) всю (!) страницу....

vanpro-x

21.09.2007

Очень интересная статья, такого и не знал, но вс? же на JavaScript привычней.

Slavna

29.09.2007

Здравствуйте, Влад и посетители.

Совет для тех, кто не хочет писать размер каждого изображения для hover, написать вместо:

A.rollover:hover {
background-position:
0px /* Смещение по горизонтали */
-40px; /* Смещение вверх по вертикали */
}

Вот так:

A.rollover:hover {
background-position:
bottom /* Смещение по горизонтали */
left; /* Смещение вверх по вертикали */
}

Евгений

08.10.2007

to Rac3r

>05.05.2007
>А я столкнулся со следующей проблемой: IE не хочет выводить этот background
>рисунок меньше 20px в высоту... В FF вс? отлично работает, а в IE вот такой
>интересный косяк. Никто не сталкивался?

Скорее всего проблема в том что используется шрифт с высотой строки свыше 20px, т.е. нужно просто прописать line-height с нужной высотой.

Тема

09.10.2007

Кстати меню с эффектом перекатывания сделать можно:

<style>
a.menu {
background: url('http://itr.nn.ru/img/menu.png'); /* Путь к файлу с исходным рисунком */
display: inline-table; /* Рисунок как блочный элемент */
width: 100px; /* Ширина рисунка в пикселах */
height: 30px; /* Высота рисунка */
font-size:xx-small; color:#fff; text-decoration:none
}

a.menu:hover {
background-position:
0px /* Смещение по горизонтали */
-30px; /* Смещение вверх по вертикали */
font-size:xx-small; color:#fff; text-decoration:none
}
div.toplink {padding:7; text-align:center}
</style>

<a href="http://itr.nn.ru/" class="menu"><div class="toplink">ссылка</div></a>

Вот только некоторые проблемы с параметром inline. С ним ничего не работает. А с параметром inline-table не работает в firefox.

sergey

09.10.2007

в експлоере все хорошо работает, а вот в mozilla firefox фон не выводится подскажите что делать?

Денис Воронов

18.10.2007

(в ответ на чей-то там праведный гнев).
Вебмастер делает сайт для юзеров. Так иногда бывает.

Евгений

31.12.2007

А это только с изображениями работает, а если просто цвет фона в hover указывать, то нет?

Влад Мержевич

03.01.2008

hover работает для любых элементов. Исключение - IE6, он поддерживает hover только для ссылок.

Voland

23.01.2008

Влад, как сделать так чтоб картинка загрузилась до того как ты к ней обращаешся?Суть в том, что на паршивом нете картинка, к-я должна появлятся при наведении мыши тормозит

Voland

23.01.2008

В смыле можно ли это сделать средствами хтмл?

Алексей

24.01.2008

Существует ли способ "подложить" текст под ролловер изображение? Если использовать данный пример для ссылки, то при отключенных изображениях ссылка будет не видна.

Device

26.01.2008

используй аргумент title ? при отключеных картинках будет виден текст, который указан в title.

Алексей

28.01.2008

Можете привести пример, где использован аргумент titlte "?". Не смог ничего найти на эту тему sad

Z0RG

03.02.2008

<img src="1.jpg" title="если не видно картинки, то будет виден этот текст" />

Это на XHTML 1.0

Sheena

18.02.2008

Отличная статья! Исал е? где-то месяц назад, но так и не наш?л. Только здесь. Спасибо!

Влад Мержевич

19.02.2008

Предварительную загрузку изображения можно сделать достаточно просто. Для этого следует разместить рисунок вначале кода, но спрятать его за краем браузера. Стиль будет таким.
IMG.hide {
position: absolute;
left: -1000px;
top: 0;
}
Вызов рисунка надо делать с классом hide и размещать изображение как можно выше по коду. После чего при последующем вызове картинки она будет отображаться быстрее.

Sheena

21.02.2008

Отличная статья! Огромное спасибо! Воспользовался)

Sheena

22.02.2008

Вопрос: а как сделать несколько ссылок с разными перекат. изображениями?

balalar

28.02.2008

Отличный сайт, почерпнул много интересного.
Спасибо!!!

ЖеньШень

02.03.2008

Помогите, пожалуйста.
Хочу разместить в одной ячейке таблицы ДВЕ ссылки:
одна - картинка с перекатыванием
другая - текст (со своим стилем)

если не делать картику-ссылку с перекатыванием, вместо нее помещать просто jpg, то ссылка-текст прекрасно стоит рядом и принимает свой стиль

если активизирую картинку (по вашему примеру), то ссылка-текст размещается под ссылкой-картинкой, а не рядом, при этом смещая вс?, что было сверстано

ссылки вообще связаны одним адресом, и можно сделать так
<a href="1234.html" class="rollover" id="group1">Рисунки</a>

НО тогда текст "Рисунки" преобретает стандартный стиль, а не тот, как мне надо. А я хочу определенный!!!!! И чтоб текс размещался рядом с рисунком....

как сделать? скажите, пожалуйста
можно было бы дававить еще столбец, но оч не хочется, все сверстано с бэкграундами
p/s/ я - лузер в программировании, все делаю по статьям на "постройка"

ЖеньШень

02.03.2008

http://www.playcast.ru/uploads/2008/03/02/498440.jpg

пооооожалуста, подскажите

только во флеш не кидайте, плиз

sarlev

03.03.2008

Огромное спасибо за статью. Я недавно в верстке и ваша статья то что нужно!!!

вадим

04.03.2008

Статья супер. Единственное не могу понять, как сделать подряд три разных кнопки???

вадим

05.03.2008

разобрался!!!
<img src="picture1.jpg" onMouseOver="this.src='picture2.jpg'" onMouseOut="this.src='picture1.jpg'">

Andrew

12.03.2008

Проблема - rollover не работал в IE6, не мог понять, почему. Долго бился, пока не убрал со страницы скрипт iepngfix.htc. Все заработало!
Но как теперь вернуть прозрачный png?

Mr. Z

12.03.2008

Классно, конечно! Но вот у меня интересный вопрос. А что, если у меня рисунок Солнышко поделен, допустим, ровно на 4 части? Как тогда быть?

ЖШ

19.03.2008

Andrew, у меня нет в коде iepngfix-а, а перекат в эксплоурере не работает sad все-равно sad

объясните, как подложить под перекатывающуюся кнопу картинку (п.с. бекграунд есть... чтоб не в бек грауд, а так... можно ли? и чтоб фигов эксплоурер читал smile)

Павел

10.04.2008

Автору большое спасибо, очень помогло

Игорь

19.04.2008

Давно искал материал по теме хранения двух изображений в одним файле. Спасибо!

Арт?м

10.05.2008

Кто знает как растинуть картинку на любой икран 17 27 Дюймов

Mordraug

19.05.2008

Особенность IE в данном контексте в том, что он независимо от того закешировалась картинка или нет - загружает ее снова при наведении на элемент с ролловером. Если картинка вмещает в себя несколько пунктов меню - заметно мигание при перекатывании, пофиксить никак не удается sad особенность рендеринга IE. (имеется ввиду IE6)

Ш?пот

19.05.2008

прикольная штука, песочница!!!

Stas

29.05.2008

2 вадим 05.03.2008
разобрался!!!
<code> <img src="picture1.jpg" onMouseOver="this.src='picture2.jpg'" onMouseOut="this.src='picture1.jpg'"> </code>

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

Евгений

29.05.2008

Огромное спасибо!!! В интернете ничего дельного не мог найти, и тут ваша статья. Все понятно показано и объяснено.

cbone

01.06.2008

Спасибо огромное! Очень помогло. smile

stab venom

06.06.2008

Зверское спасибо! Светлые вы головы!smile

Alen4ik

17.06.2008

Круто! Спасибо smile

Stas

18.06.2008

Вот заспамили.Но оказалось очень дельно.Рекомендую!
Скрипт коммерческой доски объявлений Elite-Board 1.2
Сайт производителя: www.illusionweb.ru
Цена производителя: 90$
Обновление: 20 марта 2008 года.
Качаем тут:http://slil.ru/25379396

ICQ:96-49-82

varles.narod.ru

18.06.2008

Неплохо.
4 с плюсом тянет

Ulan

17.07.2008

Ребята, все просто молодцы!! Просто класс, столько инфы получил!!!! А то сижу читаю книгу по SCC и все такое и не втыкаю вообще... а тута просто ну как на ладони, да еще с живыми примерами, Круто!!! Спасибо большое за помощь!!!!!

supec

18.07.2008

Совет очень дельный, раньше использовал onmouseover, теперь первый вариант. Однако в IE 6 проблема - с PNG-прозрачностью. Прозрачность я восстановил по методике с этого сайта http://www.tigir.com/alpha_png.htm. С бэкграундами проблем нету, но при наведении и нажатии курсора перестали меняться картинки. Тоесть кнопочка стала статичной. Какой выход ?
P.s. Владу огромное спасибо за сайт, за библиотеку тегов и прочего - мне очень помогает !

victori

24.07.2008

supec
картинки перестали меняться, потому что "исправленный" png может позиционироваться только в верхнем левом углу. Т.е. background-position на него не стал действовать.

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

Имя
Комментарий

Сохранить имя (используется cookie)

Поиск по сайту

Рецепты CSS
Разделы
Теги по теме

A
Тег A является одним из важных элементов HTML и предназначен для создания ссылок. В зависимости от присутствия параметров name или href тег A устанавливает ссылку или якорь.

CSS по теме

background
Параметр позволяет установить одновременно до пяти атрибутов стиля фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному атрибуту.

background-position
Задает начальное положение фонового изображения, установленного с помощью параметра background-image.

display
Многоцелевой атрибут, который определяет, как элемент должен быть показан в документе.

height
Устанавливает высоту блочных или заменяемых элементов (к ним, например, относится тег IMG. Высота не включает толщину границ вокруг элемента, значение отступов и полей.

width
Устанавливает ширину блочных или заменяемых элементов. Ширина не включает толщину границ вокруг элемента, значение отступов и полей.

Copyright 2002–2008 Влад Мержевич, по всем вопросам пишите по адресу: vlad@htmlbook.ru

О сайте | Планы на будущее | Использование сайта | Борьба с ошибками | Технологии | Поддержать проект