Jump to content
  • 0

Опять проблемы с IE.


GeSTaM
 Share

Question

У меня такой вопрос: есть структура элемента:

<div id="moscow" class='_menu_'>
<a href="#">Москва</a>
<b> </b>
<ul class="sub">
<li>описание </li>
</ul>
</div>

При наведение курсора на див появляется <ul>, а <b> (использовал как контейнер для картинки) меняет background.

#moscow:hover b{
background:url("/img/blue.png") no-repeat;
}

Работает везде кроме IE. Может кто знает в чем проблема? я дурной или IE?

p.s. Решение на jQuery просьба не предлагать, сделать на нем могу но принципиально хочется только на css.

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

Сейчас попробую угадать: IE шестой версии?

Просто это именно в нём :hover работает только для ссылок.

Правильное решение: посмотреть на динамику стремительного падения доли IE6 (уже сейчас она незначительная), посмотреть на сервисы Google, которые не поддерживают IE6, посмотреть даже на вконтактик, который точно так же отбрыкивается от ископаемого чудища, и не забивать себе голову.

Неправильное решение: сделать на js.

ну и ещё: несемантический элемент ради контейнера для картинки не нужен.

Раскрою секрет: как только разметка становится семантически верной, уходит большинство глюков.

Link to comment
Share on other sites

  • 0
Сейчас попробую угадать: IE шестой версии?

Просто это именно в нём :hover работает только для ссылок.

Правильное решение: посмотреть на динамику стремительного падения доли IE6 (уже сейчас она незначительная), посмотреть на сервисы Google, которые не поддерживают IE6, посмотреть даже на вконтактик, который точно так же отбрыкивается от ископаемого чудища, и не забивать себе голову.

Неправильное решение: сделать на js.

ну и ещё: несемантический элемент ради контейнера для картинки не нужен.

Раскрою секрет: как только разметка становится семантически верной, уходит большинство глюков.

нет в том то и дело что IE8...

был бы ie6 я бы и не задавал вопросов =)

и пробывал заменять <b> на <div class=""> все равно не помогло...

Link to comment
Share on other sites

  • 0

В порядке предположения:

сами блоки городов не имеют размеров.

Причём даже без IE, если просто смотреть веб-инспектором, то это ясно видно.

То есть, если предположение верно, то IE понимает лишь наведение мыша непосредственно на сам объект, например #moscow, игнорируя вложенные в него элементы, а другие браузеры под #moscow:hover подразумевают наведение мыша на любой вложенный элемент.

Попробуйте указать размеры для блоков городов.

Link to comment
Share on other sites

  • 0

Полагаю, что все дело в том, что вы используете behavior для border-radius. Видимо скрипт не понимает hover. Поэтому цвет VML-элемента остается таким каким был изначально.

Попробуйте добавить behavior для :hover-стиля, если не получится то воспользуйтесь вот этим решением, оно точно работает с :hover.

Link to comment
Share on other sites

  • 0
Полагаю, что все дело в том, что вы используете behavior для border-radius. Видимо скрипт не понимает hover. Поэтому цвет VML-элемента остается таким каким был изначально.

Попробуйте добавить behavior для :hover-стиля, если не получится то воспользуйтесь вот этим решением, оно точно работает с :hover.

Проблема со сменой background не решилась, но решилась другая проблема у выпадающих элементов углы не закруглялись а теперь все гуд (спасибо большое за сайтик) =)

Да кстате это не может быть из-за behavior, если посмотреть то в меню используется тотже jquery но при наведение бэкграунд меняется.

Проблема как раз в том что он почему то не понимает конструкцию типа:

#moscow:hover b{
background:url("/img/blue.png") no-repeat;
}

Edited by GeSTaM
Link to comment
Share on other sites

  • 0
Может стоит от семантически неверного тега <b> избавиться7 Поставьте какой-нибудь другой тег, вроде <span>

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

Link to comment
Share on other sites

  • 0

Теперь о стандартной общей проблеме:

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

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

Что мы здесь видим?

Правильно, список объектов.

Почему бы и не сделать его просто списком?

В каждом из элементов что мы видим?

Правильно: название этого объекта и скрытое описание.

Так почему бы и не разметить так, как оно есть на самом деле?

В результате получим простой код. Простой как сибирский валенок. Даже ещё проще.

Вот такой простой код: http://swetlanabayer.ru/blog/examples/lands/.

И такой простой код даже не требует отдельных стилей для IE. Ну разве что если очень хочется для него закругления сделать — но это, как я понимаю, для вас не проблема.

Link to comment
Share on other sites

  • 0
Теперь о стандартной общей проблеме:

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

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

Что мы здесь видим?

Правильно, список объектов.

Почему бы и не сделать его просто списком?

В каждом из элементов что мы видим?

Правильно: название этого объекта и скрытое описание.

Так почему бы и не разметить так, как оно есть на самом деле?

В результате получим простой код. Простой как сибирский валенок. Даже ещё проще.

Вот такой простой код: http://swetlanabayer.ru/blog/examples/lands/.

И такой простой код даже не требует отдельных стилей для IE. Ну разве что если очень хочется для него закругления сделать — но это, как я понимаю, для вас не проблема.

Спасибо огромное =)

Так и знал что изначально логика была не правильная =)

Link to comment
Share on other sites

  • 0

чет у меня тупняк начался с этим сайтом =))

вроде все правильно сделал а чет в ie не выпадает =\

лан щя замарочусь =)

Может я что то не заметил в вашем коде? Но почему то у меня IE все равно не реагирует на наведение...

Edited by GeSTaM
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy