Вопрос № 125764: Доброго времени суток, дорогие эксперты!
Прошу вас ответить на вопрос. Без вас мне тяжело справиться!!!
Мой сайт www.mega-stars.ru неправильно отображается в старых браузерах (например, в Explorer 6.0 и ниже). А именно меню, находящееся сверх...
Вопрос № 125.764
Доброго времени суток, дорогие эксперты!
Прошу вас ответить на вопрос. Без вас мне тяжело справиться!!!
Мой сайт www.mega-stars.ru неправильно отображается в старых браузерах (например, в Explorer 6.0 и ниже). А именно меню, находящееся сверху показывается не горизонтально, а вертикально!
Всё дело в декларации, которую старые браузеры не понимают:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Помогите решить эту проблему!!!
Отвечает: Иван Сергеевич
Здравствуйте, don Aleksandro!
Проблема в том, что IE (до 7й версии, в семерке точно не знаю) не поддерживает псевдокласс :hover для тэгов <li> (Только для <A>).
Посмотрите вариант с проверкой типа браузера (для ИЕ подключается дополнительный файл стилей и используется включение пунктов меню в ячейки таблиц): http://www.cssplay.co.uk/menus/dd_valid.html
Ссылки:
на шаблон меню - http://www.cssplay.co.uk/menus/css/dropdown.txt
на общие стили - http://www.cssplay.co.uk/menus/css/dropdown.css
на ИЕ стили - http://www.cssplay.co.uk/menus/css/dropdown_ie.css
В итоге страничка с меню из примера будет выглядеть примерно так (см. приложение).
Приложение:
Ответ отправил: Иван Сергеевич (статус: 2-ой класс)
Ответ отправлен: 03.03.2008, 11:20 Оценка за ответ: 5 Комментарий оценки: Огромнейшее спасибо! Вы первый, кто смог мне хоть немного помочь в исправлении меню. После вашего ответа я понял, в чем дело! И понял как это исправить. PS Оказывается, дело не только в псевдоклассе :hover, но и в других классах, которые нужно по-разному прописывать для разных браузеров. Просто ужас - такие заморочки!!!
Отвечает: Викулин Антон Юрьевич
Здравствуйте, don Aleksandro!
Посмотел на сайт - думаю, проблема не в декларации, а именно в самом CSS - старые браузеры не просто "не понимают XHTML" - они просто впервые с ним встречаются, и вообще, не вкурсе - что это и чего с ним делать...
Исправить это, чтобы работало под старые браузеры не получиться - там нет таких свойств, например, как "z-index" и "opacity" ... Причем opacity не работает уже в Опере7.6...кроме того, дял списка (<UL>) кажется, вообще не предусмотрены такие своиства(по старой спецификации)- кароче, вижу несколько вариантов решения -
1. прочитайте спецификацию старых браузеров, баг репорты, туеву хучу документации и перепишите с использованием "правильного" CSS для всех версий.(это сложно, но реально). Кроме того, по ссылке, приведенной ниже есть похожий скрипт, тока не на списках, а на DIVах.. Если еще покопаться в инете, то можно найти скрипт для таблиц...
2. перепишите под JavaScritp - это стандартный совет, но думается, что вы не стали сразу писать менюшку на нем явно не от хорошей жизни - есть повод испугаться, что пользователи отключают ява-скрипт, либо что его блокирует IE(правильно новый IE c "параноидальными" настройками может такое).
3. используйте флэш
Приложение:
--------- Все что когда-либо должно случиться, уже произошло.
Ответ отправил: Викулин Антон Юрьевич (статус: 6-ой класс)
Ответ отправлен: 03.03.2008, 12:03 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ, который был понятен и лаконичен. Также спасибо за ваши идеи. Жаль только, что вы мне не написали конкретно, как решить проблему! А так всё отлично!!!