Выпадающее меню CSS не может оставаться после активности при наведении

0

В настоящее время я работаю над несколькими раскрывающимися меню на следующей странице: 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 безрезультатно.

  • 0
    Ваш CSS испорчен. Вы должны либо увеличить высоту вашего тега, либо уменьшить значение margin-top of ul в строке 99 файла controlesSharepoint.css. Установить margin: 0px 0 0 0; и это сделано. Используйте Chrome инспектор для проверки того же
  • 0
    Это не мой CSS. Это обеспечивается нашим клиентом, следовательно, почему это так запутано. К сожалению, мы не должны многое менять.
Показать ещё 2 комментария
Теги:
drop-down-menu

2 ответа

0
Лучший ответ

Попробуй это,

.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;
}
  • 0
    Это хорошее решение, хотя какое свойство я добавляю, чтобы немного опустить выпадающее меню (поэтому я опускаюсь ниже темно-синего цвета)
  • 0
    теперь смотрите отредактированный ответ
Показать ещё 8 комментариев
0

Либо один из двух:

  • Вариант 1 (строка 2840)

.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;

}

  • 0
    inline-block не поддерживается в IE7, поэтому не остановится ли первая опция в этом браузере?
  • 0
    Код, который показан выше, совпадает с вашим файлом. Я только что скопировал то же самое с вашего сайта и изменил значение высоты. Так что, если ваша сторона работает нормально в IE7, то после этого она также будет работать нормально. Еще скажи провайдеру своего клиента сначала исправить это,
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню