CSS benachbarten Geschwister-Selektoren - IE8 Problem
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?
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 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.
aktiviert
Hinweis Kombinatoren sind nur in standardkonformen Modus (streng! DOCTYPE).
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