Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: #box : hover . Как использовать?
 
 автор: GMile   (18.08.2007 в 11:43)   письмо автору
 
 

Есть задача - зделать меню.
Есть меню (display: box), и в нём 6 "пунктов" (области типа box, 100x150px). Идея в том, чтоб при наведении на разные боксы изображения "подсвечивались".

Определив для каждого меню-бокса псевдоклас :hover, наблюдаю интересную картину - :hover работает только для одного (первого определенного) box-а. И вот вопрос - почему? Firexfox 2 и Opera 9.23 отказываються выполнять :hover для всех, выполняя его только для первого (определенного) элемента.

Вот так выглядит код css-файла:

#menu
{
    background: url(_pics/menu.png);
    display: box;
    height: 150px;
    width: 600px;
}

.menu-item
{
    width: 100px;
    float: left;
    height: 150px;
}

#item1:hover { background: url(_pics/item1-over.png); };
#item2:hover { background: url(_pics/item2-over.png); };
#item2:hover { background: url(_pics/item3-over.png); };
...
#item6:hover { background: url(_pics/item6-over.png); };


А вот так - код на html-странице:

<div id="menu">
        <div class="menu-item" id="item1">home</div>
        <div class="menu-item" id="item2">philosophy</div>
        <div class="menu-item" id="item3">works</div>

        <div class="menu-item" id="item6">people</div>
</div>


Интересно, что IE7 отображает каждый :hover. А вот "продвинутые" браузеры нет...

   
 
 автор: AlexSol   (18.08.2007 в 11:53)   письмо автору
 
   для: GMile   (18.08.2007 в 11:43)
 

а почему не сделать через ссылки? как здесь http://ballista.ru/mark/image_and_css

   
 
 автор: GMile   (18.08.2007 в 11:58)   письмо автору
 
   для: AlexSol   (18.08.2007 в 11:53)
 

Я вчера только поздно ночью наткнулся на эту проблему. Сегодня весь день (пока не зделаю) потрачу на перебор возможных вариантов решения. Спасибо, Ваш будет первым :)

Вообще-же главное, это добиться того, чтоб изображения описывались в css-файле а не в коде html-страницы. Где-то читал, что содержание css-файла полностью кешируеться браузером (включая загрузку описаных в нем изображений). Ведь подгружать картинки каждый раз натыкаясь на <img> - не самая лучая идея с точки зрения производительности.

   
 
 автор: AlexSol   (18.08.2007 в 12:03)   письмо автору
 
   для: GMile   (18.08.2007 в 11:58)
 

не знаю. в тонкости кеширования не вдавался. по ссылки что я привел - два последних примера.

   
 
 автор: GMile   (18.08.2007 в 14:56)   письмо автору
 
   для: AlexSol   (18.08.2007 в 12:03)
 

Совершенно отличный пример, спасибо.

Но у меня не работает О.о .Я абсолютно растерян, не вижу в чём проблема. Не работает в Опере и Файрфоксе. Как быть - не знаю. Дописывать на javascript не умею.

Зделал всё как описано в том примере с человечком. Для одного :hover работает - для остальных нет.

Я использую для каждого пункта меню разную картинку. Может в этом проблема?
Я создал несколько разных классов, с разными background'ами. Начальные картинки при загрузке страницы видны, но :hover обрабатываеться только у первой определенной :(

Экспериментировал. Создал один класс с :hover'ом и картинкой, и на странице в меню copy-past'ом зделал несколько одинаковых таких "ссылок" (все одного класса). Всё работает: несколько повторяющихся картинок - и у каждой обрабатывающийся :hover . Вывод - в рамках одного контейнера (в моем случае это меню) может обрабатываться :hover только для одного класса. Глупость какая-то. Или я какую-то мелочь упускаю.

Как быть?

   
 
 автор: AlexSol   (18.08.2007 в 15:02)   письмо автору
 
   для: GMile   (18.08.2007 в 14:56)
 

а может приаттачите архивчик со своим творчеством?

   
 
 автор: GMile   (18.08.2007 в 15:13)   письмо автору
 
   для: AlexSol   (18.08.2007 в 15:02)
 

Действительно. Почему бы и нет. Вот часть над которой сейчас работаю.

   
 
 автор: AlexSol   (18.08.2007 в 15:35)   письмо автору
 
   для: GMile   (18.08.2007 в 15:13)
 

style.css

строки 71-72. после закрывающей кавычки точка-запятая не ставиться. поэтому идущие далее стили не читаются.

на будующее http://jigsaw.w3.org/css-validator/

   
 
 автор: GMile   (18.08.2007 в 15:38)   письмо автору
 
   для: AlexSol   (18.08.2007 в 15:35)
 

:-D
Спасибо огромнейшее! Видимо вот так вот и учаться... на своих ошибках. На всё жизнь запомню и буду использовать валидатор.

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования