2012-04-13 2 views
0

I ein Layout mit zwei Spalten wollen, zwei divs, wo der linke Fluid Breite und die richtige Breite hat fixiert. So weit, so gut - siehe unten - die Höhe der rechten Spalte muss jedoch in Relation zur Höhe der linken Spalte stehen. Wenn ich also etwas Inhalt in der Flüssigkeitssäule habe und die Größe des Browserfensters ändern würde, um dadurch die Höhe der linken Spalte zu erhöhen oder zu verringern, sollte die richtige folgen und die gleiche Höhe erhalten.2-Säule div Layout: rechte Spalte mit fester Breite, links Fluid, Höhe relativ an einander

Was ich so weit gekommen: http://jsfiddle.net/henrikandersson/vnUdc/2/

Edit: Beschlossen, siehe Kommentar unten

+1

Benötigen Sie IE7 zu unterstützen? Wenn nicht, können Sie 'display: table-cell' verwenden. [Beispiel.] (Http://stackoverflow.com/questions/6708816/3-columns-center-column-fixed-sides-fill-parents/6708947#6708947) – thirtydot

+0

@thirtydot vielen Dank, das wie ein Charme! Benötigen keine IE7-Unterstützung. –

Antwort

0

So bekam ich eine Antwort auf meine Frage von @thirtydot (siehe Kommentar oben):

Müssen Sie IE7 unterstützen? Wenn nicht, können Sie Anzeige verwenden: table-cell

+0

Versucht, einen Weg zu finden, den Kommentar als akzeptierte Antwort zu setzen, aber er scheint keinen guten Weg zu finden. Bitte korrigieren Sie mich, wenn es falsch war, eine Antwort selbst so zu posten. –

+0

Wo fügen Sie die Tabellenzelleneigenschaft hinzu? – blessenm

0

Ah, die zwei Spalten-Layout ‚ol. Wenn Sie nicht auf JavaScript zurückgreifen, um die Höhe einer Spalte zu verfolgen, um die andere anzupassen, können Sie dies nicht so tun, wie Sie es erwarten. Die Verwendung von height = "100%" funktioniert normalerweise auch in diesen Situationen nicht.

Was Sie können tun ist so etwas wie die alte Faux Column Technik. Die Größe der Divs wird nicht geändert, aber Sie haben ein Hintergrundbild auf dem übergeordneten Element, das vertikal gekachelt wird, wodurch die Illusion von gleichen Spalten entsteht. Alte Schule, ja, aber effektiv.

+0

Leider funktioniert das nicht, da ich die beiden Spalten auf der gleichen Höhe brauche. Der Grund ist, dass ich einen Knopf in der Mitte (vertikal) der rechten Spalte positionieren muss. –

+0

ahh - ja, dann falsche Spalten funktionieren nicht. sieht aus wie Sie eine gute Idee von thirtydot – chipcullen

0

Sie können JavaScript verwenden, um die Höhe der linken div zu erhalten, dann legen Sie die richtige div auf diese Höhe.

Zur Höhe des linken div zu erhalten:

var divHeight = document.getElementById('left').offsetHeight; 

Zur Höhe des rechten div eingestellt:

document.getElementById('right').style.height = divHeight+'px'; 

Your JSFiddle example fixed.

+0

Vielen Dank für die Eingabe bekam, aber ich muss es ohne Javascript zu arbeiten. Thirtydot lieferte jedoch eine Lösung, siehe oben. –

Verwandte Themen