Обновлять:
Я добавил награду к этому. Чтобы заявить об этом, мне нужна версия приведенного ниже кода, которая НЕ проявляет симптомы, которые я описываю.
Вот простой тестовый пример. В Chrome, Firefox и IE8 с выключенным режимом совместимости это работает как положено. Тем не менее, включите режим совместимости (переключите Tolls-> Compatibility View), есть сбой с отображением и скрытием некоторых блоков меню.
Чтобы увидеть проблему:
Сохраните пример в файл и просмотрите его через веб-браузер (обратите внимание, что если вы просто загрузите его из файла, вы не сможете включить режим совместимости — он должен быть доставлен с веб-сервера).
Переместите мышь от «Здесь» к «Туда» и «Везде», затем вниз, чтобы было выделено «Нет», и отобразилось меню 3-го уровня. Переместите мышь влево. Отображается только верхнее меню.
Теперь повторите шаги. Когда вы нажимаете «Везде» во второй раз, отображается блок меню 3-го уровня, но в нем ничего нет.
Есть ли способ предотвратить это, даже в режиме совместимости?
Образец:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>test</title>
<style>
#navRaw, #navRaw ul{
margin: 0;
padding: 0;
list-style-type: none;
list-style-position: outside;
position: relative;
line-height: 26px;
}
#navRaw a{
display: block;
padding: 0px 5px;
color: #000;
text-decoration: none;
background-color: silver;
line-height: 28px !important;
}
#navRaw a:hover{
background-color: #ccc;
color: #fff;
}
#navRaw li{
float: left;
position: relative;
}
#navRaw ul{
position: absolute;
display: none;
top: 28px;
}
#navRaw li ul a{
width: 220px;
height: auto;
float: left;
}
#navRaw ul ul{top: auto;}
#navRaw li ul ul{
left: 230px;
margin: 0px 0 0 0px;
}
#navRaw li:hover ul ul, #navRaw li:hover ul ul ul, #navRaw li:hover ul ul ul ul{ display: none;}
#navRaw li:hover ul, #navRaw li li:hover ul, #navRaw li li li:hover ul, #navRaw li li li li:hover ul{
display: block;
border: 1px solid Black;
}
</style>
</head>
<body>
<ul id="navRaw">
<li><a href="#"><b>Here</b></a></li>
<li><a href="#"><b>There</b></a></li>
<li><a href="#"><b>Everywhere</b></a>
<ul>
<li><a href="#"><b>Yes</b></a></li>
<li class="showsub"><a href="#"><b>No</b></a>
<ul>
<li><a href="#"><b>Why</b></a></li>
<li><a href="#"><b>Why not</b></a></li>
</ul>
</li>
<li class="menusep"><a href="#"><b>Perhaps</b></a></li>
</ul>
</li>
</ul>
</body>
</html>