Meine Anforderung ist einfach: 2 Spalten, wobei die richtige eine feste Größe hat . Leider konnte ich weder bei Stackoverflow noch bei Google eine funktionierende Lösung finden. Jede dort beschriebene Lösung schlägt fehl, wenn ich sie in meinem eigenen Kontext implementiere. Die aktuelle Lösung lautet:
div.container {
position: fixed;
float: left;
top: 100px;
width: 100%;
clear: both;
}
#content {
margin-right: 265px;
}
#right {
float: right;
width: 225px;
margin-left: -225px;
}
#right, #content {
height: 1%; /* fixed for IE, although doesn't seem to work */
padding: 20px;
}
<div class="container">
<div id="content">
fooburg content
</div>
<div id="right">
test right
</div>
</div>
Mit dem obigen Code erhalte ich Folgendes:
|----------------------- -------|
| fooburg content | |
|-------------------------------|
| | test right |
|----------------------- -------|
Bitte beraten. Danke vielmals!
clear: both
innerhalb einer der Spalten wirkt sich nicht auf die äußeren Floats aus. Dies ist nicht "zerbrechlich", es sei denn, Sie platzieren das Clear auf der gleichen Ebene der Spalten zwischen den Spalten. Wenn Sie es am Ende platzieren, wird kein Schaden angerichtet.Siehe http://www.alistapart.com/articles/negativemargins/ , genau das benötigen Sie ( Beispiel 4) dort).
quelle
Um zu vermeiden, dass die rechte Spalte vor der linken steht, verwenden Sie einfach einen negativen rechten Rand.
Und seien Sie "reaktionsschnell", indem Sie eine @ media-Einstellung einfügen, sodass die rechte Spalte auf schmalen Bildschirmen unter die linke fällt.
quelle
Einfachste und flexibelste Lösung so weit , es zu benutzen
table display
:HTML, linkes Div steht an erster Stelle, rechtes Div steht an zweiter Stelle ... wir lesen und schreiben von links nach rechts, daher macht es keinen Sinn, die Divs von rechts nach links zu platzieren
CSS:
Fallbeispiele:
quelle
table
mittd
s dies mit Sicherheit nicht ist!Ich möchte eine noch nicht erwähnte Lösung vorschlagen: Verwenden Sie CSS3s
calc()
zum Mischen%
undpx
Einheiten.calc()
hat ausgezeichnete Unterstützung heutzutage und ermöglicht die schnelle Erstellung recht komplexer Layouts.Hier ist ein JSFiddle- Link für den folgenden Code.
HTML:
CSS:
Und hier ist eine weitere JSFiddle , die dieses Konzept demonstriert und auf ein komplexeres Layout angewendet wird. Ich habe hier SCSS verwendet, da seine Variablen flexiblen und selbstbeschreibenden Code ermöglichen, aber das Layout kann einfach in reinem CSS neu erstellt werden, wenn "fest codierte" Werte kein Problem darstellen.
quelle
Dies ist eine generische, nach HTML-Quellen geordnete Lösung, bei der:
Feste / zweite Spalte rechts
Feste / zweite Spalte links
Eine alternative Lösung ist die Verwendung von display: table-cell ; was zu Spalten gleicher Höhe führt.
quelle
Hey, was Sie tun können, ist eine feste Breite auf beide Container anzuwenden und dann eine andere div-Klasse zu verwenden, wo klar: beide, wie
Platziere das klare Div unter dem linken und rechten Behälter.
quelle
Ich habe es vereinfacht: Ich habe Jackjoes Antwort bearbeitet. Die Höhe Auto usw. nicht erforderlich, denke ich.
CSS:
HTML:
Lorem ipsum dolor sitzen amet, Consectetuer adipiscing elit. Phasellus varius eleifend. Lorem ipsum dolor sitzen amet, consectetuer adipiscing elit.Phasellus varius eleifend.
quelle