Aus irgendeinem Grund kann ich das UL und seine LIs nicht daran hindern, sich zu verpacken. Ich möchte, dass die Breite der UL genau der Breite der LIs in einer Zeile entspricht (ohne Umbruch), und wenn die UL breiter als das Nav-Div (800 Pixel) wird, möchte ich eine Bildlaufleiste innerhalb der Nav, damit ich die LI scrollen kann.
Ich habe so ziemlich alles mit Anzeige, Leerzeichen, Breite und Höhe ausprobiert, aber ich kann es nur zum Laufen bringen, wenn ich dem UL eine bestimmte Breite gebe. Dies ist jedoch keine Option, da die Seite generiert wird und 1-20 LI’s enthalten kann.
Weiß jemand, wie man eine Bildlaufleiste erscheinen lässt, ohne die Breite des UL festzulegen?
ganz einfach – musste nur den Schwimmer loswerden!
– Michael
16. September 2011 um 6:59 Uhr
Ja, aber es hat eine Weile gedauert, bis ich dazu kam, weißt du: P …. anscheinend werden Browser keinen Textüberlauf machen, wenn sie zuerst mit Leerzeichen treffen … oder so ähnlich, denke ich, und das gilt für die neuesten Version von OS X Firefox, Safari, Chorome
– j03w
17. September 2011 um 2:52 Uhr
Wenn ich dasselbe mache, indem ich “class” oder “id” verwende, funktioniert es nicht. Kann mir jemand erklären warum es nicht funktioniert?
– Yash Vekaria
23. April 2015 um 11:33 Uhr
@YashVekaria, denken Sie daran, eine jsfiddle aufzustellen, damit wir sehen können, warum es für Sie nicht funktioniert?
– j03w
24. April 2015 um 2:11 Uhr
Kizu
Sie können verwenden display: inline-block; white-space: nowrap; für die Verpackung u display: inline oder display: inline-block für die Kinder.
Und wenn Sie IE unterstützen müssen, fügen Sie diesen Hack in bedingte Kommentare hinzu, um ihn zu aktivieren inline-blocksteht drin:
.navbuttons,
.navbuttons LI {
display: inline;
zoom: 1;
}
stellt sich heraus, dass es das war float: left Das hat mir Probleme bereitet, es hat die UL-Höhe und -Breite weniger gemacht – danke für Ihre Hilfe 🙂
– Michael
16. September 2011 um 6:58 Uhr
Für mich hinzufügen vertical-align: top; hat es mir angetan. Vielen Dank.
– jyoseph
20. Januar um 22:21 Uhr
Achtung: Ungetestet
Möchten Sie nicht nur eine Breite für das li-Element festlegen?
div#nav ul li {
margin-right: 15px;
float: left;
font-size: 12px;
list-style-type: none;
width: 100px;
}
Und dann die Breite auf eine feste Breite setzen und auf dem UL überlaufen, um zu scrollen?
div#nav ul {
width: 800px;
overflow: scroll;
}
Dies würde dazu führen, dass Sie UL scrollen, wenn Ihre Lis über 8 hinausgehen. Ist es das, wonach Sie suchen?
Durch die Einstellung der width auf der <ul> zu inherit du kannst den … benutzen overflow Eigentum um das Überlaufverhalten des Elements einzustellen. Mit dem Wert scrollwird der gesamte Inhalt des Elements (sowohl in x- als auch in y-Richtung) gescrollt, wenn die Höhe und die Breite des Inhalts die der Box überschreiten:
div#nav ul
{
overflow: scroll;
width: inherit;
height: inherit;
}
Fügen Sie die folgende Regel hinzu:
div#nav ul {
overflow-x: hidden;
overflow-y: scroll;
white-space: nowrap;
}
14338800cookie-checkhorizontale Bildlaufleiste für ulyes