Frage

Ich erstelle ein Menüsystem eine UL / LI-Struktur verwendet wird. Ich versuche, Geschwister-Selektoren für Hover / show-Untermenü zu verwenden.

Ich bin mit diesem;

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

Die UL-Struktur wäre so etwas wie diese;

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

Angeblich soll, wenn sie über "Hover Over Me" schwebt, die Geschwister sollten ul angezeigt werden. Es funktioniert großartig in Firefox, aber nicht in IE8. Ich bin sicher, ich habe den ‚+‘ Geschwister Wähler vor in IE8 verwendet gesehen, wohin gehe ich falsch?

War es hilfreich?

Lösung

Sie müssen sicherstellen, dass IE ist im Standardmodus ausgeführt wird - setzen in einem Doctype wie folgt aus:

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

der Dokumentation :

  

Der benachbarten Geschwister Kombinator ist ein „Pluszeichen“ (+) Zeichen, das zwei einfache Selektoren trennt. Whitespace ist nicht signifikant.

     

Ein Wähler der Form „E + F“ entspricht Element F, wenn es sofort Geschwisterelement E im Dokumentenbaum folgt, ignoriert nicht-Elementknoten (wie Textknoten und Kommentare). Element E und F müssen die gleichen Eltern teilen und E müssen sofort F. voraus Um das erste Kind der Eltern zu entsprechen, verwenden Sie das: first-child pseudo-Klasse

.      

Hinweis Erfordert Windows Internet Explorer 7 oder höher.
   Hinweis Kombinatoren sind nur in standardkonformen Modus (streng! DOCTYPE).

aktiviert

Andere Tipps

wäre es einfacher, das Schweben auf dem li-Element hinzuzufügen und die Hover-Fix für das heißt mit diesem

scroll top