3-Spalten als Mitte?

Status
Nicht offen für weitere Antworten.

allstar05

Mitglied
Hi,

ich würde gerne 3 Spalten als Mitte einfügen.
http://www.vwtalk.de/test/

Ich habe mal ein Bild abgehängt wie ich das gerne haben möchte.
Wenn ich das selber mache, klappt es nie wie ich das will.

Danke schonmal für die Hilfe
 

Anhänge

  • layout.jpg
    layout.jpg
    18,4 KB · Aufrufe: 27
Hast du auch mal die Suchfunktion im CSS-Board genutzt?

Das Thema bzgl. eines '3-spaltigen Layouts' wurde hier schon desöfteren behandelt, und so erzielt der Suchbegriff 3-spaltiges Layout aktuell 358 Treffer!

Merke: erst suchen, dann fragen ;)

Okay..., das Grundprinzip für ein dreispaltiges CSS-Layout sieht folgendermassen aus:

Code:
div.leftColumn {
float: left;
width: 190px;
margin: 0;
padding: 0;
}

div.rightColumn {
float: right;
width: 190px;
margin: 0;
padding: 0;
}

div.centerColumn {
margin: 0 190px;
padding: 0;
}

div.clear {
clear: left;
height: 0;
margin: 0;
padding: 0;
font-size: 0;
}
HTML:
<div class="mitte">
          <div class="leftColumn">left</div>
          <div class="rightColumn">right</div>
          <div class="centerColumn">center</div>

          <div class="clear">&nbsp;</div>
</div>
Anmerkung:

Da die Spalten durch einen Rahmen voneinander getrennt werden sollen, und dieser (vermutlich) auf beiden Seiten gleich hoch sein soll, empfiehlt es sich, für das DIV.mitte eine Hintergrundgrafik zu verwenden, die 848*1 Pixel dimensioniert ist und die beiden Spaltenrahmen enthält.

Mit der CSS-Eigenschaft background-repeat:repeat-y wird die Hintergrundgrafik senkrecht wiederholt, und die Spalten sind somit immer gleich hoch, unabhängig vom jeweiligen Spalteninhalt.

Code:
div.mitte {
width: 848px;
background: url(bgImage.png) repeat-y;
border: 1px solid #4C6792;
}
 
Code:
div.clear {
clear: left;
height: 0;
margin: 0;
padding: 0;
font-size: 0;
}

Mittels der clear-Eigenschaft wird nach den floatenden DIVs im Dokument wieder der normale Textfluss hergestellt, damit nachfolgende Elemente unterhalb der Spalten angeordnet / dargestellt werden.

Die auf null gesetzten Eigenschaften dienen dazu, daß das Element nicht auf das Layout Einfluss nimmt und es ggfs. verschiebt.

Achja, und &nbsp; erzeugt ein erzwungenes Leerzeichen im DIV-Element.
 
Selbstverständlich kannst du das DIV auch als 'Footer' einsetzen, aber dann bitte auch mit der angesprochenen clear-Eigenschaft und ohne bzw. mit der gewünschten Höhenangabe.

Dann klappt's auch in den modernen Browsern, zu denen der IE nicht zählt.

Code:
div.footer {
clear:left;
/*height: 0px;*/ /* auskommentiert = deaktiviert */
margin: 0;
padding: 0;
border-top:1px solid #4C6792;
background-color:#95ADD3;
}
 
allstar05 hat gesagt.:
Und wieso ist im center text so ein kleiner Abstand zum border ? Links und rechts ist ja keiner.
Das ist ein IE-Bug: der 3px-Abstand bei floatenden Elementen -> IE Three Pixel Gap

Lösung:

Code:
div.leftColumn {
float: left;
width: 190px;
margin-right: 0 !important; 
margin-right: -3px; /* Für IE */
padding: 0;
border-right:1px solid #4C6792;
background-color: #FFFFFF
}

div.rightColumn {
float: right;
width: 190px;
margin-left: 0 !important; 
margin-left: -3px; /* Für IE */
padding: 0;
border-left:1px solid #4C6792;
background-color: #FFFFFF
}

div.centerColumn {
margin: 0;
padding: 0;
}
 
michaelsinterface hat gesagt.:
Anmerkung:

Da die Spalten durch einen Rahmen voneinander getrennt werden sollen, und dieser (vermutlich) auf beiden Seiten gleich hoch sein soll, empfiehlt es sich, für das DIV.mitte eine Hintergrundgrafik zu verwenden, die 848*1 Pixel dimensioniert ist und die beiden Spaltenrahmen enthält.

Mit der CSS-Eigenschaft background-repeat:repeat-y wird die Hintergrundgrafik senkrecht wiederholt, und die Spalten sind somit immer gleich hoch, unabhängig vom jeweiligen Spalteninhalt.

Code:
div.mitte {
width: 848px;
background: url(bgImage.png) repeat-y;
border: 1px solid #4C6792;
}
Wer lesen kann, ist klar im Vorteil ;)
 
Status
Nicht offen für weitere Antworten.
Zurück