CSS соседние селекторы - проблема IE8 - PullRequest
5 голосов
/ 23 октября 2009

Я создаю систему меню, используя структуру UL / LI. Я пытаюсь использовать селекторы братьев и сестер для наведения / показа подменю.

Я использую это;

#MainMenu li.Sel ul li.HasSub a:hover+ul {
     display: block;
}

Структура UL будет выглядеть примерно так:

<ul id='MainMenu'>
    <li class='Sel'>
    <a href='#'>Click Me</a>
        <ul>
            <li class='HasSub'>
                <a href='#'>Hover Over Me</a>
                <ul>
                    <li>Link</li>
                    <li>Link</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

Предположительно, при наведении указателя мыши на "Hover Over Me", должен отображаться родственный ul. Он отлично работает в Firefox, но совсем не в IE8. Я уверен, что видел селектор брата '+', используемый в IE8 раньше, где я ошибаюсь?

Ответы [ 2 ]

9 голосов
/ 23 октября 2009

Вы должны убедиться, что IE работает в стандартном режиме - введите такой тип документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

С документация :

Соседний братский комбинатор представляет собой знак «плюс» (+), который разделяет два простых селектора. Пробелы не имеют значения.

Селектор формы «E + F» соответствует элементу F, когда он сразу следует за родственным элементом E в дереве документа, игнорируя неэлементные узлы (такие как текстовые узлы и комментарии). У элементов E и F должен быть один и тот же родительский элемент, а E должен непосредственно предшествовать F. Чтобы соответствовать первому дочернему элементу родительского элемента, используйте псевдокласс: first-child.

Примечание Требуется Windows Internet Explorer 7 или более поздняя версия.
Примечание Комбинаторы включаются только в режиме, соответствующем стандартам (строго! DOCTYPE).

0 голосов
/ 23 октября 2009

Было бы проще добавить элемент наведения на элемент li и зафиксировать элемент наведения, т. Е. Использовать этот http://www.xs4all.nl/~peterned/csshover.html

е

#MainMenu li.Sel ul li.HasSub:hover {
     display: block;
}

Надеюсь, что поможет

Josh

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...