Der am besten kompatible Weg, den ich dazu gefunden habe, ist nicht sehr offensichtlich. Sie müssen den Float aus der zweiten Spalte entfernen und overflow:hidden
auf ihn anwenden . Obwohl dies jeden Inhalt zu verbergen scheint, der außerhalb des Divs liegt, zwingt es den Div tatsächlich dazu, in seinem übergeordneten Element zu bleiben.
Dies ist ein Beispiel dafür, wie Sie Ihren Code verwenden können:
<div style="width: 100px; float: left;">menu</div>
<div style="overflow: hidden;">content</div>
Ich hoffe, dies ist für alle nützlich, die dieses Problem haben. Ich fand, dass es für die Site, die ich erstellt habe, am besten funktioniert, nachdem ich versucht habe, es an andere Auflösungen anzupassen. Leider funktioniert dies nicht, wenn Sie auch div
nach dem Inhalt ein rechtsschreibendes Element einfügen. Wenn jemand einen guten Weg kennt, um dies mit guter IE-Kompatibilität zum Laufen zu bringen, würde ich mich sehr freuen, das zu hören.
Neue, bessere Option mit display: flex;
Jetzt, da das Flexbox-Modell ziemlich weit verbreitet ist, würde ich empfehlen, es stattdessen zu verwenden, da es viel mehr flex
Flexibilität beim Layout ermöglicht. Hier ist eine einfache zweispaltige Version wie das Original:
<div style="display: flex;">
<div style="width: 100px;">menu</div>
<div style="flex: 1;">content</div>
</div>
Und hier ist eine dreispaltige mit einer mittleren Spalte mit flexibler Breite!
<div style="display: flex;">
<div style="width: 100px;">menu</div>
<div style="flex:1;">content</div>
<div style="width: 100px;">sidebar</div>
</div>