В настоящее время я работаю над несколькими раскрывающимися меню на следующей странице: http://icao.tungsten.hireserve-test.com/home.html
Первоначально у нас было только одно из этих меню, но наш клиент с тех пор изменил свой шаблон, и теперь нам нужно реализовать два раскрывающихся меню. Раньше это делалось с событиями jQuery hover(), которые запускали show() и hide(), но теперь я заменил это на CSS.
li.dynamic-children{
position: relative
}
li.dynamic-children ul{
display: none;
position: absolute;
}
li.dynamic-children:hover ul{
display: block;
left: -1px;
top: 18px;
position: absolute;
z-index: 100
}
li.dynamic-children:hover ul span{
width: 100%
}
Выпадающее меню отображается успешно при наведении, однако, поскольку оно выполняется с помощью CSS, похоже, не существует способа гарантировать, что выпадающее окно сохраняется, когда пользователь отключается от ссылки, которая вызывает раскрывающийся список. Это означает, что пользователь не может выбрать какой-либо элемент в раскрывающемся меню, что делает его бесполезным.
Есть ли у кого-нибудь из вас какие-либо идеи относительно того, как я могу заставить меню сохраняться достаточно долго, чтобы пользователи могли сделать выбор для раскрывающихся меню?
РЕДАКТИРОВАТЬ:
Основываясь на приведенном ниже коде, я теперь включил следующие правила CSS:
.s4-tn .horizontal ul.dynamic {
background-color: #ECF4FC;
border-top:4px solid #003D78;
margin: 0;
width: 255px;
z-index: 1000 !important;
}
.menu-horizontal li.static, .menu-horizontal a.static, .menu-horizontal span.static {
float: left;
padding-bottom: 5px;
}
Эти правила заставляют меню сохраняться, однако в IE7 раскрывающееся меню теперь отстает от других элементов на странице, которые все еще бесполезны в этом браузере. Я пробовал множество исправлений z-index безрезультатно.
Попробуй это,
.s4-tn .horizontal ul.dynamic {
background-color: #ECF4FC;
border: 0 solid #003D78;
margin: 0;
width: 255px;
z-index: 101;
}
li.dynamic-children:hover ul {
display: block;
left: -1px;
position: absolute;
top: 22px;
}
Либо один из двух:
.s4-tn li.static >.menu-item {
color: #3b4f65;
white-space: nowrap;
border: 1px solid transparent;
padding: 4px 10px;
display: inline-block;
height: 34px;
vertical-align: middle;
}
Вариант 2 (строка 99)
.s4-tn.horizontal ul.dynamic {
margin: 0 0 0 0;
border: 0px #003D78 solid;
width: 255px;
background-color: #ecf4fc;
}
margin: 0px 0 0 0;
и это сделано. Используйте Chrome инспектор для проверки того же