CSS Probleme: mit benutzerdefinierten ul, li Drop-Down-Navigation in dh vor allem mit dem IE6 Überlauf: sichtbare Fehler
-
06-07-2019 - |
Frage
Das Wesen des IE6 Bug (Drop-Down-Einträge müssen über Überlauf abgeschnitten versteckt dh um zu verhindern, falsch statt, die als Überlauf erweitert: sichtbar) kann in zu sehen, es ist Strom (Hacky) Form in der Abbildung unten, und bei der Website http://zd-cms.com
Wrong (IE6):
Right (FF, IE8, Chrome):
Der Menüeintrag soll zeigen:
- Kontakt
- Resellers
- Support
- Designer Dienstleistungen
Da ich aber nicht überlaufen bekommen: sichtbare Arbeits oder anderweitig simulieren, Teile des Dropdown-Menüs erhalten abgeschnitten. Derzeit ist die CSS in der IE6-spezifischer Sheet ist:
#zd-nav {
padding-left:0;
margin-left:0;
background-color:transparent;
}
#zd-nav .zd-sub-nav{
margin-top:5px;
**width:73px**;
**overflow:hidden;**
}
Einige Lösungen für die Fehler, die ich versucht habe: Ich bin mir bewusst, der IE6 Überlauf: sichtbare Fehler (wie pro hier: http: // www .positioniseverything.net / Explorer / expandingboxbug.html ), der Überlauf macht: sichtbar null und nichtig. Lesen Sie: Strategie für Fixing-Layout Bugs in IE6 und versucht, eine einige Hacks zu versuchen, es wirklich als Überlauf wirkt zu machen. sichtbar, aber nichts funktionierte
Im Moment hat ich den Drop-Down-Teil des Menüs bekommt Überlauf gesetzt: als letzte Graben Lösung versteckt, weil ich IE6 nicht das Menü Akt in einem Überlauf erhalten lassen kann. Sichtbare Weise
Probleme Unter Hinweis darauf, mit dem nav in IE7 oder IE8 würde viel auch geschätzt werden.
Verbesserungsvorschläge?
Lösung
Das funktioniert für mich:
#zd-nav .zd-sub-nav li{
float:left;
clear:left;
position:relative;
z-index:20; /* or some other arbitrary biggish number */
}
Der Schwimmer gibt dem li die richtige Breite und die Position relativ und z-index es oben zeigen lassen (dh nicht eingeschränkt durch) die ul.
Andere Tipps
Probieren Sie dies aus (unter der Annahme, dass Sie die Drop wollen down [zuzüglich Unterunterunter], um auch zu „schweben“ über alle anderen Elemente auf der Seite erlaubt zu werden, die in die Quere kommen):
.zd-nav-active {
position: relative;
}
.zd-sub-nav {
position: absolute;
z-index:10000;
}
Erzwingen der li die Subnavigation containg relativ zur Position auf der Seite nicht Position ändern. Sie räumt jedoch ein, können Sie Position absolut auf untergeordneten Elemente verwenden, während sie innerhalb des übergeordneten standardmäßig enthalten zu halten, und aus dem „Flow“ der Seite Freigabe (und damit die Push-down-Effekt zu verhindern).
Versuchen Sie entweder:
word-wrap:break-word; /*use this in the #zd-nav .zd-sub-nav class*/
oder ...
width:100%; /*instead of setting the width to 73px*/
Sie könnten height:100%;
tun auch.
Es ist ein hasLayout Problem, dass Microsoft erfunden. Gefunden die Infos hier: http://zoffix.com/css/ie/haslayout.shtml
Hope, das hilft ...
Das sollte funktionieren
#zd-nav .zd-sub-nav{
margin-top:5px;
width: auto;
display: block;
overflow: visible
}
Eine automatische Breite verwendet wird, um die Größe der einzelnen Navigationselemente zu übernehmen, ohne dass jedes eine feste Breite geben.
Hope, das hilft.
Ich schlage vor, eine relative Position zu dem Behälter zu verwenden, mit Top-Angabe und links und Breite