Zwei schwebende Säulen – eine feste, eine lose Breite
Lesezeit: 5 Minuten
MacMac
Ich habe mich umgesehen SOaber ich kann keine finden, die meinem Vorkommen entspricht, ich habe im Grunde zwei Spalten, eine feste Breite (185px) und die andere Spalte hat keine feste Breite, aber ich brauche die letzte Spalte, um den letzten Platz zu füllen, z
Die erste Spalte sollte immer zu 100 % unten sein, wenn die zweite Spalte die restliche Breite ausfüllt, sie sind beide gefloatet left, wenn ich die Größe des Browserfensters verändere, wird die zweite Spalte unter der ersten Spalte angezeigt. Ich brauche die zweite Spalte, um die verbleibende Breite auszufüllen und flexibel zu sein, wenn ich die Größe des Browserfensters verändere.
Jacob
Es gibt tatsächlich einen einfacheren Weg, dies zu tun, als Floats zu verwenden:
Das funktioniert großartig … aber nach dem Container habe ich eine Fußzeile … was passiert ist … die Fußzeile geht nicht nach dem Container … stattdessen wurde sie zur Mitte des Containers.
– rkaartikean
26. Oktober 2013 um 23:38 Uhr
@Jacob ist es möglich, % anstelle eines bestimmten Pixels zu verwenden?
– Duc Tran
13. Dezember 2013 um 7:00 Uhr
Die richtige Breite wird sich aber nicht zu 100 % dehnen, wenn der Inhalt nicht groß genug ist?
– NaturalBornCamper
27. Oktober 2017 um 22:30 Uhr
Durch die Verwendung negativer Margen aus diesem Tutorial das CSS kann wie folgt aussehen
Die Lösung wurde bearbeitet, diesmal mit Flexbox, und die linke Spalte mit fixiert flex: 185px 0 0; Dann wurde die rechte Spalte automatisch vergrößert flex-grow:1
Die rechte Spalte füllt den verfügbaren Platz nicht automatisch auf diese Weise aus, sondern verwendet stattdessen den minimal erforderlichen Platz, um ihren Inhalt anzuzeigen.
– Timothy Groote
26. März 2013 um 10:54 Uhr
@TimothyGroote hier ist meine aktualisierte Lösung flexboxdie rechte Spalte sollte jetzt den verfügbaren Platz füllen/wachsen jsfiddle.net/ouymLfoz Danke.
– Gerhard Banasig
18. Juli 2017 um 7:47 Uhr
Ok, das scheint zu funktionieren. aber warum hast du die Antwort nicht einfach aktualisiert?
– Timothy Groote
18. Juli 2017 um 14:02 Uhr
Schau mal rein Dies. Es gibt keine Demos, aber ich habe schon einmal Tutorials von diesem Typen verwendet, also gehe ich davon aus, dass es gut funktioniert. Ich entnehme dem Artikel, dass der Hauptinhalt flüssig ist. Der Seiteninhalt kann auch flüssig sein, aber ich denke, Sie können ihm einfach eine feste Breite geben und es dabei belassen. Der Trick dabei ist, den Hauptinhalt zuerst zu platzieren.
Die “Position: absolut;” Die Antwort ist ziemlich gut, hat aber browserübergreifende Auswirkungen, insbesondere wenn Sie für IE entwickeln. Der beste Weg, dies zu erreichen, ist der folgende:
Bitte beachten Sie, dass das gewünschte div auf der rechten Seite zuerst im HTML aufgerufen wird. Beachten Sie auch das Löschen des Schwimmers nach den Spalten, was praktisch ist, wenn Sie unten Inhalte haben oder wenn es einen übergeordneten Container gibt.
Notiz; Es ist eine schlechte Angewohnheit, Stile im Head-Bereich zu haben, unabhängig davon, ob es sich um eine Demo handelt. Es ist auch eine schlechte Praxis, Elemente in CSS nach Elementnamen und Klassennamen (z. B. div.right) auszuwählen – nur der Klassenname reicht aus.
– TheCarver
8. März 2018 um 11:44 Uhr
Sebastian
Wenn Sie weder Floats noch absolute Positionierung verwenden möchten, war das Einfachste, was ich mir einfallen lassen konnte
Notiz; Es ist eine schlechte Angewohnheit, Stile im Head-Bereich zu haben, unabhängig davon, ob es sich um eine Demo handelt. Es ist auch eine schlechte Praxis, Elemente in CSS nach Elementnamen und Klassennamen (z. B. div.right) auszuwählen – nur der Klassenname reicht aus.
– TheCarver
8. März 2018 um 11:44 Uhr
Andrej Surdu
Nun, die genehmigte Antwort ist gut, aber für diejenigen, die nach mehr suchen, ist hier ein Link. Ich hoffe, Sie finden das nützlich. 😉