Элемент списка IE8 влияет на другие элементы списка, когда подменю активно - PullRequest
2 голосов
/ 12 августа 2011

У меня есть главное меню, используя список. Когда пользователь наводит указатель мыши на элемент, он перемещается вверх, чтобы указать пользователю, что при наведении курсора все время изменяется цвет фона и отображается его подменю.

Ссылка на сайт с вопросом.

Добавьте debug = true в строку запроса, если вам нужен firebug.

Проблема в IE8, где, если подменю активно, и пользователь наводит курсор на любой элемент списка на главном уровне, все предыдущие элементы действуют так же, как и при наведении курсора. Это означает, что эти элементы списка перемещаются вверх, но background-color не изменяется. В зависимости от того, как пользователь наводит указатель мыши на элементы списка, некоторые элементы могут даже оказаться ниже начальной позиции.

Вот SASS, который я преобразовал в CSS, чтобы помочь понять, как я перемещаю свои пункты меню таким образом.

#mainmenu ul li:hover,
#mainmenu ul li.active{
    margin-top: -15px
}

Единственное различие в HTML между Подменю, которое активно и не является предметом списка основного уровня, имеет класс subactive, который не используется никаким CSS, и активный элемент подсписка получает класс active.

У меня такое ощущение, что проблема где-то между изменением background-color и отрицательным значением margin-top.

Обычно можно ожидать, что элементы будут затронуты, а не те, что были раньше.

Пожалуйста, избегайте Javascript исправлений, пожалуйста.

Спасибо!

1 Ответ

3 голосов
/ 12 августа 2011

В IE8, когда вы настраиваете margin-top: -15px, он толкает верхнюю часть UL-бокса, чтобы соответствовать, вместо того, чтобы позволить LI выходить за пределы UL-бокса.Таким образом, все остальные вкладки перемещаются вверх, чтобы соответствовать новому UL-окну.

Я предлагаю установить не зависающий LI на margin-top: 15px, а навести курсор на margin-top: 0 - изменить его.

(Это все равно будет работать в кросс-браузерном режиме.)

...