Zurück tutorials.de > Tutorials > Webmaster - Tutorials > CSS - Tutorials

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


Einladung zum C++ für Einsteiger-Workshop
  Tutorial geschlossenGeschlossen    
  Tutorial geschlossenGeschlossen    
 
Tutorial-Optionen Ansicht
Zentriertes Layout mit drei Spalten
Zentriertes Layout mit drei Spalten
Veröffentlicht von Maik
29.06.07
Zentriertes Layout mit drei Spalten

Hallo Tutorianer!

Auf Anregung von Liro in der Tutorials-Wunschliste (http://www.tutorials.de/forum/tutori...er-layout.html) möchte ich in diesem Tutorial kurz die Umsetzung eines dreispaltigen CSS-Layouts mit horizontaler Zentrierung erläutern.

Was benötigen wir als Zutaten?
  1. HTML-Code:
    Code:
    <div id="wrapper" class="clearfix">
         <div id="leftCol">leftCol</div>
         <div id="rightCol">rightCol</div>
         <div id="centerCol">centerCol</div>
    </div>
  2. CSS-Code:
    Code:
    * { /* Mit dem Universalselektor die Polsterungseigenschaften aller (Block-)Elemente auf null setzen */
    margin: 0;
    padding: 0;
    }
    
    body {
    text-align: center; /* Für IE 5.01 & 5.5, um die Box #wrapper horizontal zu zentrieren */
    }
    
    div {
    text-align: left; /* text-align:center wieder aufheben, damit DIV-Inhalte linksbündig ausgerichtet sind */
    }
    
    /* DIV-Boxen */
    
    div#wrapper {
    width: 800px;
    margin: 0 auto; 
    border: 1px solid #b8b8b8; 
    }
    
    div#leftCol {
    float: left; 
    width: 200px;
    background: #e2e2e2;
    }
    
    div#rightCol {
    float: right; 
    width: 200px; 
    background: #e2e2e2;
    }
    
    div#centerCol {
    margin: 0 200px; 
    }
    
    /* clearfix zum Aufheben der Floatumgebung */
    
    .clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
    }
    
    .clearfix {display: inline-block;}
    
    /* Hides from IE-mac \*/
    * html .clearfix {height: 1%;}
    .clearfix {display: block;}
    /* End hide from IE-mac */
Das DIV #wrapper dient zur Aufnahme der Spalten-Blöcke. Es erhält eine feste Breite (hier: 800px) und wird mittels margin:0 auto im Anzeigebereich horizontal zentriert.

(Anmerkung: Da der IE5.01 und 5.5 wegen mangelnder Unterstützung des Boxmodells mit der margin-Deklaration nichts anzufangen wissen, setzen wir text-align:center im body-Element ein, damit sie die Box im Fenster horizontal zentrieren. Im Gegenzug wird in allen DIVs mit text-align:left die Textausrichtung linksbündig gesetzt, da sie ansonsten die Regel aus dem übergeordneten body-Element vererbt bekommen.)

In ihm werden die drei Spaltenblöcke (#leftCol, #rightCol, c#enterCol) platziert und im HTML-Quelltext auch in dieser Reihenfolge genannt / notiert: zuerst die beiden äußeren Spalten mit der jeweiligen float-Eigenschaft und anschliessend die Mittlere, die mit margin:0 200px die beiden float-Objekte umfliesst.

Mit der CSS-Klasse .clearfix sorgen wir dafür, dass die Floatumgebung anschliessend "gecleart" wird und so die Box #wrapper ihre wahre Höhe annimmt. (Siehe hierzu auch den Artikel http://positioniseverything.net/easyclearing.html)

Das Grundkonzept für den horizontal zentrierten Dreispalter steht damit.

Nur hat dieser einen kleinen Schönheitsfehler: Wenn die Inhalte in den einzelnen Spalten unterschiedlich groß sind, dehnen sich die Boxen in ihrer Höhe unterschiedlich aus und reichen nicht gemeinsam bzw. einheitlich bis zum unteren Rand des Elternelements.

Diese Klippe lässt sich mit Hilfe der "Faux-Columns-Technik" umschiffen, indem wir eine Grafik erstellen, die der Breite des Layouts entsprechend dimensioniert ist (hier: 800*1px), und dem DIV #wrapper als vertikales Hintergrundbild zugewiesen wird.

In der Grafik wird der Hintergrund (oder ein vertikaler Rahmen) für die Spalten eingearbeitet, womit im Stylesheet die zunächst deklarierte Hintergrundfarbe der äußeren Spalten #leftCol und #rightCol entfällt, da jetzt durch die vertikale Bildwiederholung die Spaltenhintergründe "generiert" werden. Auf diese Weise besitzen die Spalten unabhängig von ihrem Inhaltsumfang automatisch die gleiche Höhe.

Das Stylesheet für die DIVs #wrapper, #leftCol und #rightCol lautet nun folgendermaßen:

Code:
div#wrapper {
width: 800px;
margin: 0 auto;
border: 1px solid #b8b8b8;
background: url(3cols.png) repeat-y;
}

div#leftCol {
float: left;
width: 200px;
}

div#rightCol {
float: right;
width: 200px;
}
Das vollständige Beispiel mit zwei Varianten (Hintergrund / Rahmen für die Spalten) hänge ich hier als ZIP-Datei an.


mfg Maik
__________________
  • Ich biete keinen Support via PN, Skype, ICQ & Co - dafür ist das Forum da!
  • Beantwortete Fragen bzw. gelöste Themen bitte als erledigt markieren - vielen Dank!
______________________________________________________________________________________________
Interpol und Deutsche Bank, FBI und Scotland Yard, Finanzamt und das BKA haben unsere Daten da.

[ Kraftwerk - Computerwelt - 1981 ]
Angehängte Dateien
Dateityp: zip 3cols_centered.zip (2,9 KB, 2252x aufgerufen)

Bewertung
 
Ausführlichkeit
90%90%90%
4,50
Verständlichkeit
93.4%93.4%93.4%
4,67
Kompetenz
90%90%90%
4,50
Gesamteindruck
83.4%83.4%83.4%
4,17
6 User bewerteten mit 89% durchschnittlich

Tutorial-Optionen
 



Tutorial-Optionen
Ansicht
Ähnliche Themen
 
Tutorial Autor Forum Kommentare Letzter Beitrag
[CSS] zentriertes Dreispalter-Layout Liro Tutorials - Wunschliste 2 29.06.07 20:13
3-Spalten-Layout mit 2-Spalten ContentArea WebGeek CSS 3 07.05.07 06:13
Drei-Spalten-Layout mit CSS Metha CSS 6 22.06.06 06:41
Drei Spalten Layout Neral CSS 1 26.07.05 16:25
Layout mit drei längenvariablen Div's Atmosphinx CSS 2 01.03.05 15:14
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 130
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 258
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 145
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 99
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 188
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 78,77%
141 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 21,23%
38 Stimmen
Stimmen gesamt: 179
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,16040 Sekunden mit 32 queries