CSS - Seitenlayout
Beim Seitenlayout handelt es sich um ein sehr komplexes Thema. Dieser Themenblock soll frühzeitig grundlegende Techniken erläutern. Dazu widmen wir unsere Aufmerksamkeit den Sectioning Elementen und beginnen mit deren Platzierung innerhalb des Dokuments. Diverse Ansätze stehen zur Verfügung, u.a. das sog. Grid - System.
Folgen Sie an den entsprechenden Stellen den Links: Mehr dazu ...
(Dieser Themenblock bedient sich einer speziellen Methode des Grid - Systems, vertiefen
Sie Ihr Wissen und beschäftigen Sie sich mit der CSS Eigenschaft display: grid;
)
Grid - System
Mit einem Grid - System (kurz: Grid oder auch: Gestaltungsraster) lassen sich Spalten und Zeilen definieren, um HTML Elemente zu platzieren.
Vertikal ...
Ein Grid kann nur aus Zeilen bestehen und somit ein vertikales Layout zur Verfügung zu stellen:
Horizontale Bereiche ...
Horizontale Bereiche lassen sich mit dem Einsatz von Spalten erzeugen:
CSS: display: grid;
CSS bietet uns mit der Eigenschaft display: grid;
ein starkes Werkzeug um ein Grid
zu erzeugen.
Durch display: grid;
wird das entsprechende Element zu einem sog.
Grid - Container. Die Kindelemente werden automatisch zu dessen sog.
Grid - Areas.
Mit Hilfe der Eigenschaften grid-template-columns
und grid-template-rows
werden
die sog. Rasterlinien gezeichnet.
In Listing 002 wird ein Grid mit zwei Spalten (1fr 1fr) und drei Zeilen (1fr 2fr 1fr) erzeugt. Die
Angaben beziehen sich auf das <body>
Element, die Kindelemente werden dadurch
automatisch zu Grid Areas.
Grid Areas platzieren
Um die Grid Areas innerhalb der gewünschten Rasterzellen platzieren zu können, bedienen wir uns einer
speziellen Methode, den sog. grid-template-areas
.
Mit Hilfe dieser Eigenschaft, lässt sich das Gestaltungsraster als Block notieren, in dem sich die gesetzten Spalten und Zeilen wiederspiegeln.
Der Block besteht aus den Namen für die zu platzierenden Bereiche und bestimmt deren Position und Ausdehnung.
Den Kindelementen wird mit grid-area
der jeweils entsprechende Name zugewiesen
und somit eine Verknüpfung hergestellt.
Abstände
Dem Grid Container können Abstände mitgeteilt werden, die die Grid Areas untereinander einhalten müssen.
Durch die Angabe von grid-column-gap: 1.6rem;
werden Abstände zwischen die vertikal
angeordneten Grid Areas gesetzt.
Durch die Angabe von grid-row-gap: 1.6rem;
werden Abstände zwischen die horizontal
angeordneten Grid Areas gesetzt.
Mit Hilfe der gap
Eingenschaften lassen sich margin
Angaben vermeiden.
Nutzen Sie diesen Vorteil!
In der Praxis
Öffnen Sie die Datei index.html
und passen Sie das Seitenlayout an!
Bei den Sectioning Elementen <header>
, <main>
, <aside>
und <footer>
handelt es sich um Kindelemente des <body>
Tags, sowie
um Blockelemente mit automatischem Zeilenumbruch. Die Darstellung erfolgt daher bereits
vertikal. Dennoch passen wir bereits an dieser Stelle den CSS Code an und erstellen ein Grid.
Die CSS Datei wird folgendermaßen angepasst:
1. ...
2. ...
3. ...
4. ...
Optisch ist kaum ein Unterschied erkennbar, allerdings dient jetzt ein Grid als Basis und ist damit wesentlich dynamischer. Um einen horizontalen Bereich zu schaffen, bedarf es nur einer winzigen Änderung am CSS Code.
1. ...
2. ...
3. ...
HTML Dokument öffnenVergleichen Sie die Seitenlayouts miteinander. Das vertikale Layout eignet sich hervorragend zur Darstellung der Inhalte auf mobilen Geräten. Die horizontale Darstellung der Bereiche eignet sich hingegen bestens für die Darstellung auf größeren Monitoren. Mit CSS kann für die verschiedenen Ausgabegeräte ein jeweils angepasstes Layout ausgeliefert werden.
Bearbeiten Sie das Thema 4. CSS - Viewports!