ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
4428
4428
EMPFEHLEN
-
25.04.07 13:23 #1
Hallo zusammen!
Also folgendes Szenario: Ich will ein 3-Spalten-Layout erstellen ohne feste Positionierung (also absolute angaben). Nach einiger Recherche ist mir dann klar geworden, dass dies anscheinend mit den CSS-Anweisungen clear und float zu realisieren ist.
Bis jetzt habe ich folgenden HTML- (eigentlich nicht wirklich nennenswert)
und diesen CSS-Code.HTML-Code:<body> <div id="colLeft"> Foo </div> <div id="colMiddle"> Bar </div> <div id="colRight"> Baz </div> </body>
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
div#colLeft{ float:left; width:200px; height:200px; border:1px solid #000000; } div#colMiddle{ float:right; width:200px; height:200px; border:1px solid #000000; } div#colRight{ }
Wie man sieht ist es bis jetzt noch nicht viel, aber das liegt hauptsächlich daran, dass ich absolut keinen Schimmer habe, wie ich mit clear und float arbeiten soll. Sicherlich habe ich einiges hin und her versucht, jedoch kam entweder nicht einmal annähernd das heraus, was ich wollte oder eben dass die mittlere Spalte zwar rechts der Linken ist, aber nicht auf gleicher Höhe, sondern darunter.
Etwa so:
http://img133.imageshack.us/img133/5...problemur1.gif
Irgendwie schon peinlich, dass ich schon an der zweiten Spalte scheiterte...
Nun denn, hoffentlich ist jemand so nett mir die Materie etwas näher zu bringen, denn ich würde wirklich sehr sehr ungern auf Tabellen zurückgreifen müssen.
-
25.04.07 13:30 #2Maik Tutorials.de Gastzugang
Hi,
versuch es mal auf diese Weise:
und notiere die DIVs in dieser Reihenfolge:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
div#colLeft{ float:left; width:200px; height:200px; border:1px solid #000000; } div#colMiddle{ margin: 0 202px; } div#colRight{ float:right; width:200px; height:200px; border:1px solid #000000; }
Wenn die mittlere Spalte keine variable Breite besitzen soll, wird der Dreispalter in ein übergeordnetes DIV wrap mit fester Breitenangabe eingebunden:Code :1 2 3
<div id="colLeft">Foo</div> <div id="colRight">Baz</div> <div id="colMiddle">Bar</div>
Code :1 2 3
div#wrap { width: 600px; }Code :1 2 3 4 5
<div id="wrap"> <div id="colLeft">Foo</div> <div id="colRight">Baz</div> <div id="colMiddle">Bar</div> </div>
-
25.04.07 13:35 #3
Vielen Dank, du hast mir wirklich sehr geholfen.

Ich lassen den Thread erstmal noch als nicht erledigt, falls ich noch Probleme habe.
Nachtrag: Schein alles astrein zu funktionieren. Danke nochmals!
Erledigt!Geändert von Crashburn (25.04.07 um 13:40 Uhr)
-
Hallo Community,
ich habe das obige Beispiel noch etwas verfeinert und um das ganze auch optisch besser zu sehen, gestrichelte Rahmen in unterschiedlichen Farben den einzelnen Bereichen gegeben...
[mein Augenmerk habe ich auf 2 Eigenschaften gelenkt:
a) die mittlere Spalte sollte beim zusammenschieben des Browserfensters nicht über die linke Spalte geschoben weden können, da ich im body ein Hintergrundbild habe und das Design somit zerstört werden würde!
b) in der mittleren Spalte noch einen zentrierten div-tag zu bekommen]
hat jemand ne Idee, wie man den CSS code soweit optimieren kann, damit die linke und rechte Spalte gleich lange wird wie die mittlere Spalte...
[ich bin viele Stunden an einigen Varianten gesessen - hab's aber dann mangels Zeit mal gelassen... vielleicht hat jemand von Euch ja eine elegante Lösung... ]
ich würde mich über Vorschläge zur Optimierung freuen - DANKE
[ich habe den CSS Code mal in der Source gelassen und vorerst mal nur im IE7 getestet... ]
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>3-Spalten-Layout mit CSS</title> <style type="text/css"> <!-- body { background-color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; line-height: 15px; color: #FFFFFF; margin: 0px; } div#ColLeft{ float: left; width: 50px; border: 1px dashed #999999; } div#ColRight{ float: right; width: 50px; border: 1px dashed #999999; } div#ColMiddle{ margin: 0 50px; border: 1px dashed #FFFF00; } div#ContentArea { width: 810px; border: 1px dashed #DDDDDD; } div#ContentAreaTop { height: 24px; border: 1px dashed #FF00CC; } div#ContentAreaTopNav { line-height: 20px; border: 2px dashed #009900; } div#ContentAreaMain { border: 1px dashed #FF0000; } div#ContentAreaBottom { height: 51px; border: 1px dashed #FF00FF; } --> </style> </head> <body> <div id="ColLeft"> </div> <div id="ColRight"> </div> <div id="ColMiddle" align="center"> <div id="ContentArea"> <div id="ContentAreaTop"> </div> <div id="ContentAreaTopNav"> </div> <div id="ContentAreaMain"> </div> <div id="ContentAreaBottom"> </div> </div> </div> </body> </html>Geändert von WebGeek (06.05.07 um 15:58 Uhr)
- I have a dream -
.: WebGeek :.
-
06.05.07 15:54 #5Maik Tutorials.de Gastzugang
Hi,
schau dir hierfür mal Stu Nicholls' three columns an.
-
tja, Du wirst es nicht glauben, diesen Code kenne ich schon...
ist eigentlich optimal und ich habe mich auch schon viele Stunden mich damit auseinandergesetzt...
... ersetzt man hier solid durch dashed oder läßt es ganz weg bzw. entfernt auch die Farbe, dann ist die linke oder rechte Spalte auch nicht mehr vorhanden - somit ist dies noch nicht die LösungCode :1
container {position:relative; display:block; background:#0ac; border-left:200px solid #aa8; border-right:200px solid #a8a;}
- I have a dream -
.: WebGeek :.
-
06.05.07 16:16 #7Maik Tutorials.de Gastzugang
Der linke und rechte durchgezogene Rahmen für das DIV container dient hier auch als Hintergrund für die beiden äußeren Spalten und ist somit ein Bestandteil des Workarounds, um die Spaltenhöhen automatisch anzugleichen.
-
ich weiss, ich weiss...
da ich aber im body ein Hintergrundbild habe, müssen die 3 Spalten transparent sein...
also hat evtl. jemand der Community hierfür eine Lösung?
ich bin schon zu oft über genau die Problematik von div-tags in einer Zeile gestolpert - wäre fein für alle eine Lösung zu posten und den Tabellen good by zu sagen - ich verwende in meinem Code keine Tabellen mehr für's Layout - Tabellen und vor allem verschachtelte Tabellen machen den Code auch sehr unübersichtlich und sind in heutigen WebDesign's verpöhnt!
- I have a dream -
.: WebGeek :.
Ähnliche Themen
-
3 Spalten Layout
Von Xching im Forum CSSAntworten: 7Letzter Beitrag: 06.10.10, 11:49 -
3-Spalten-Layout unter 2-Spalten-Layout setzen
Von cocoon im Forum CSSAntworten: 9Letzter Beitrag: 03.07.09, 12:31 -
3-Spalten-Layout / Moz vs. IE
Von sipoh im Forum CSSAntworten: 6Letzter Beitrag: 31.10.07, 13:26 -
3-Spalten-Layout mit 2-Spalten ContentArea
Von WebGeek im Forum CSSAntworten: 3Letzter Beitrag: 07.05.07, 06:13 -
3 Spalten Layout
Von freakcx im Forum CSSAntworten: 2Letzter Beitrag: 06.11.05, 00:19






Login





