CSS
Mit den Übungen des letzten Übungsblattes haben Sie die klassische Methode der Gestaltung von Webseiten mit Hilfe von HTML-Tabellen kennengelernt.
Wegen deren angesprochenen Nachteile, wurde das Layouten von Webseiten mit Hilfe von Tabellen durch das Gestalten mit Hilfe von Cascading Style Sheets (CSS) ersetzt. Dies ist das Thema dieses Übungsblattes, welches zu diesem Zweck ein Exzerpt der relevanten Abschnitte von SelfHTML darstellt.
Die Aufgabe der Cascading Style Sheets besteht darin, die Gestaltungsbefehle von HTML zu ersetzen und zu erweitern, um auf diese Weise u. a. die Gestaltung von Webseiten unabhängig von deren Redaktion durchführen zu können. Lesen Sie hierzu den Abschnitt Sinn und Zweck von CSS Stylesheets.
Die Umsetzung von CSS in den gängigen Webbrowsern erfolgte in der Vergangenheit sehr langsam und inkonsistent. Mit jeder neuen Browsergeneration verbessert sich allerdings die Situation. Dennoch gilt nach wie vor, dass auf CSS-Basis gestaltete Webauftritte mit allen avisierten Browsern getestet werden müssen, um herauszufinden, ob die benutzten Funktionen im Einzelfall auch tatsächlich unterstützt werden. Neben dieser speziellen CSS-Problematik existieren bei der Gestaltung von Webseiten auch grundsätzliche Probleme, wie z. B. die uneinheitliche Darstellung von Schriftgrößen und Farben. Lesen Sie hierzu ggf. den Abschnitt Stylesheets, Web-Browser und Anwender.
Bei der klassischen Seitengestaltung und
Textformatierung mittels HTML-Befehlen wurden diese direkt in den jeweiligen
Textabschnitt eingefügt. So konnte z. B. dem Text eines Absatzes dadurch ein
neuer Zeichensatz zugewiesen werden, indem dieser mit dem Element
<font>...</font> ausgezeichnet wurde.
Hierdurch verschmolzen allerdings die Formatierungselemente mit denen zur
Textstrukturierung. Bei CSS wird ein anderer Ansatz verfolgt. Hier werden
Formate unabhängig von den Textpassagen definiert und diesen dann bei Bedarf
zugewiesen. Dies bedeutet z. B., dass für Textabsätze ein bestimmter
Zeichensatz und eine bestimmte Zeichengröße definiert und diese Definition beim
Darstellungsvorgang benutzt wird. Wie dies im Einzelnen funktioniert ist Thema
dieses Übungsblattes.
Die Definition der Formate, die bei der Darstellung einer HTML-Seite benutzt werden sollen, kann an unterschiedlichen Stellen erfolgen:
- In einer eigenen CSS-Datei. Dies wird primär dann gemacht, wenn Formate für mehrere HTML-Dateien bzw. einen kompletten Webauftritt gültig sein sollen.
- Im Kopfbereich der HTML-Dateien. Dies erfolgt dann, wenn Formate nur für diese Datei gültig sein sollen. Gleichnamige Formate besitzen dabei Vorrang vor jenen, die in einer externen Datei definiert sind.
- Innerhalb eines HTML-Elementes, z. B. für einen bestimmten Absatz. Diese Definitionen besitzen Vorrang gegenüber denen im Kopfbereich und in externen Dateien. Sie werden dann benutzt, wenn die Definition nur für einen kurzen Textabschnitt gültig sein soll bzw. wenn eine bestimmte Definition temporär abgeschaltet werden soll.
Daneben ist es ebenfalls möglich, separate Formate für unterschiedliche Ausgabemedien zu definieren. So kann z. B. für die Bildschirmdarstellung eine andere Formatierung gewählt werden, als für den Ausdruck, die Darstellung auf dem Mobiltelefon bzw. dem PDA oder die Braille-Zeile für Blinde.
Im folgenden Beispiel sehen Sie, wie CSS-Anweisungen im Kopf einer HTML-Datei benutzt werden können, um HTML-Elementen Formate zuzuweisen. So kann z. B. durch den Eintrag
<html><head><style type="text/css"><!--body {background-color:#EEEEFF}--></style></head><body></body></html>
dem Hintergrund der Datei über das HTML-Element
<body>...</body> eine neue Farbe
zugewiesen werden. Steht die CSS-Anweisung
body {background-color:#EEEEFF}
in einer externen CSS-Datei, z. B. mit dem Namen
formate.css, so gilt diese Hintergrundfarbe für alle HTML-Dateien,
die diese CSS-Datei im Kopfelement mit der Anweisung
<link rel="stylesheet" type="text/css" href="formate.css">
einbinden. Dabei bedeutet link Verweis.
rel steht für Relation bzw. Bezug. Die Einträge besagen, dass es
sich bei der einzubindenden Datei um eine Formatdefinition des Typs CSS
handelt.
Der HTML-Kommentar <!--...--> im
obigen Beispiel dient dazu, älteren Browsern, die kein CSS verstehen, die
Anzeige der Seite zu gestatten. Diese Browser "überlesen" dann einfach die
CSS-Anweisungen. Die Link-Anweisung darunter kann allerdings nicht in einem
HTML-Kommentar stehen. Sonst wird die CSS-Datei nicht eingelesen.
Um CSS-Anweisungen zu kommentieren, können keine
HTML-Kommentare benutzt werden. Da Kommentare wichtig sind, um CSS-Definitionen
temporär ausschalten oder diesen Erläuterungen hinzufügen zu können, sehen die
Cascading Style Sheets hierfür eine eigene Syntax vor, die sich an die
Kommentare der C-Programmiersprachfamilie anlehnt. Entsprechend dieser Syntax
werden Kommentare durch die Zeichenfolge /* eingeleitet und durch
*/ abgeschlossen.
Beispiel: /* Dies ist ein CSS-Kommentar */
In der Beispieldatei oben ist die einzusetzende Farbe in Hexadezimaler-Notation angegeben. Bei dieser Darstellung werden der Rot-, Grün- und Blauanteil der Farbe als ein hexadezimaler Zahlenwert angegeben: EEEEFF. Dieser weist je ein Byte für den Rot-, Grün- und Blauanteil auf: RRGGBB. Dass es sich bei dem Zahlenwert um einen Hexadezimalwert handelt, wird durch das vorangestellte Gatterzeichen # ausgedrückt.
Daneben können auch vordefinierte Farben benutzt
werden. Die CSS-Anweisung h1 {color:red} weist z. B. Überschriften
erster Ordnung die Farbe Rot zu. Schließlich ist es ebenfalls möglich, Farben
als RGB-Werte zu definieren. Der hexadezimale Farbwert oben entspricht dem
Eintrag rgb(238,238,255) in RGB-Notation:
body {background-color:rgb(238,238,255)}
Der Bereich, aus dem die Farbwerte genommen werden können, ist 0..255, da auch hier die Codierung jeweils durch ein Byte erfolgt. Alternativ können auch Prozentangaben zwischen 0% und 100% verwendet werden. Weiteres hierzu in den Abschnitten Numerische Angaben und Farbangaben von SelfHTML.
Schaut man sich die Anweisung h1
{color:red} genauer an, so besteht diese aus mehreren Teilen:
- Dem "Selektor": Dies ist der Teil vor den geschweiften Klammern. Der Selektor legt fest, für welches HTML-Element die folgenden Definitionen gelten sollen. Im obigen Beispiel gelten die Formate für alle Überschriften 1. Ordnung (h1-Elemente).
Der "Definition": Diese legt fest, welche Eigenschaften des HTML-Elementes zu ändern sind. Da dies mehr als eine Eigenschaft sein kann, stehen alle Definitionen, durch Strichpunkt ; getrennt, in einem Satz geschweifter Klammern { und }. Im obigen Beispiel wird etwa die CSS-Eigenschaft
color(Schriftfarbe) geändert. Eine Anweisung, die sowohl die Farbe, als auch die Schriftgöße (font-size) ändert, würde wie folgt aussehen:h1 {color:red;font-size:36pt}Der Eigenschaft
colorwird der Wertredzugewiesen, der Eigenschaftfont-sizeder Wert 36 Punkt, mit der Schriftgröße in Punkten. Zwischen Eigenschaft und Wertzuweisung muss stets ein Doppelpunkt stehen. Bei der letzten Definition vor der schließenden geschweiften Klammer kann der Strichpunkt entfallen.
Aufgaben:
- Erzeugen Sie eine HTML-Datei mit der obigen CSS-Anweisung im Kopfelement und benutzen Sie diese, um der Datei eine neue Hintergrundfarbe zu geben. Definieren Sie darüber hinaus CSS-Anweisungen, um Überschriften erster Ordnung und dem Body-Text der HTML-Datei neue Farben zuzuweisen. Schauen Sie sich hierzu ggf. noch einmal an, wie Farben in HTML definiert werden. Farben können mit dem Farbauswähler bestimmt werden. Benutzen Sie für diese und die folgenden Übungen bitte nicht den Internet Explorer.
- Schreiben Sie eine Variante Ihrer HTML-Datei, bei der die CSS-Anweisungen in einer externen Datei stehen.
Eine Auflistung der vorhandenen Möglichkeiten für die Formatierung von HTML-Elementen mittels CSS-Eigenschaften finden Sie in SelfHTML.
Bei der Definition von CSS-Eigenschaften kann der Fall
auftreten, dass diese nicht nur für ein HTML-Element, sondern für mehrere
gültig sein sollen. Im obigen Beispiel hätte z. B. der Fall eintreten können,
dass die Definition nicht nur für das Element h1, sondern
zusätzlich auch für das Element h2 gültig sein soll. Um
Codeduplikation zu vermeiden, ist es deshalb möglich, im Selektor mehrere,
durch Kommata getrennte Elementtypen anzugeben. Die Anweisung
h1, h2 {color:red;font-size:36pt}
legt dann z. B. die Eigenschaften für beide Überschriftsarten fest.
In HTML-Dateien stehen HTML-Elemente häufig im Bereich eines anderen HTML-Elementes. Im folgenden Beispiel enthält eine Liste z. B. mehrere Absatzelemente:
<ul>
<li>
<p>
Absatz Nr. 1
</p>
</li>
<p>
<li>
Absatz Nr. 2
</li>
</p>
</ul>
Dabei steht ein Absatzelement in einem Listeneintrag und ein Listeneintrag umgekehrt in einem Absatzelement. Warum das so ist, sehen wir weiter unten.
Mit der CSS-Anweisung li {color:red}
können wir Listeneinträgen z. B. die Farbe Rot zuweisen. Was geschieht dann mit
den eingeschachtelten Absatzelementen? Hinsichtlich verschachtelter
HTML-Elemente sieht die CSS-Spezifikation vor, dass das HTML-Element,
welches innerhalb eines anderen HTML-Elements vorkommt, dessen Eigenschaften
übernimmt und seine eigenen Eigenschaften nur hinzufügt. Sofern eine
Eigenschaft doppelt definiert ist, setzt die für das innere Element gültige
Definition die des äußeren außer Kraft, sodass die des inneren Elements zur
Anwendung kommt.
Aufgabe:
- Kopieren Sie den obigen HTML-Code in eine neue HTML-Datei und legen Sie für Listenelemente die Farbe Rot und für Absatzelemente die Farbe Blau fest. Der erste Absatz erscheint blau, der zweite rot. Warum? Was fällt ihnen sonst noch auf?
Sie können mit Hilfe von Style-Sheets jedoch bestimmen, dass ein HTML-Element bestimmte Eigenschaften nur dann hat, wenn es innerhalb eines anderen HTML-Elements vorkommt. Um dies zu erreichen, können Sie den Bezeichner des eingeschachtelten HTML-Elements dem Selektor des äußeren Elements hinzufügen. Mit dem Code
li p {color:green}
kann so z. B. angegeben werden, dass Absätze, die in einem Listenelement vorkommen, grün gesetzt werden sollen. Alle übrigen Absätze erscheinen in ihrer ursprünglichen Farbe. Beachten Sie das fehlende Komma im Selektor. Mit Komma wäre dies eine Definition, die für Listen- und Absatzelemente gilt. Ohne Komma gilt diese Definition nur für Absatzelemente in Listenelementen. Das innere Element steht rechts vom äußeren Element.
Aufgabe:
- Fügen Sie die obige Anweisung Ihren CSS-Anweisungen hinzu und Ihrer HTML-Datei außerhalb des Listenelements ein weiteres Absatzelement. Was stellen Sie fest? Warum?
Hinsichtlich der Verschachtelung von HTML-Elementen existieren noch weitere Möglichkeiten, den Gültigkeitsbereich von CSS-Anweisungen zu beschränken. Darüber hinaus ist es möglich, die Gültigkeit von CSS-Anweisungen an die Existenz bestimmter Attribute bzw. Attributwerte zu koppeln.
Aufgabe:
Fügen Sie Ihrer HTML-Datei einen zentriert gesetzten Absatz hinzu und ergänzen Sie Ihre CSS-Anweisungen um eine Anweisung, die derartige Absätze kursiv setzt. Schauen Sie zu diesem Zweck nach einer passenden Schrifteigenschaft. Ihre Testdatei sollte danach ungefähr so ausschauen:

Bis jetzt können wir jedem HTML-Element nur ein Format zuweisen. Es könnte allerdings der Fall eintreten, dass unterschiedlich formatierte Varianten eines HTML-Elements benötigt werden. So könnte es z. B. sein, dass Textabsätze, die eine bestimmte, erläuternde Funktion besitzen, sich von anderen abheben sollen und daher mit einer anderen Farbe zu hinterlegen sind. Dasselbe könnte beispielsweise für Überschriften unterschiedlicher Art, aber gleicher Hierarchieebene gelten.
Um dies zu ermöglichen, können HTML-Elemente
klassifiziert werden. Dies geschieht über das Attribut class,
welches in das einleitende Tag eingefügt wird. Der Wert, der dem Attribut
zugewiesen wird, kann frei gewählt werden, d. h. es können eigene Klassennamen
definiert werden. Auf diese Weise kann es z. B. normale Absätze
<p>...</p> geben und Absätze der Klasse
hinterlegt, die eine eigene Formatierung aufweisen:
<p class="hinterlegt">...</p>.
Um derartige Klassen zu formatieren, sehen die CSS einen modifizierten Selektor vor. Bei diesem wird der Klassenname mit einem Punkt an den Bezeichner des HTML-Elements angefügt:
p.hinterlegt { background-color:#FFFF00 }
Die obige CSS-Anweisung weist den Absätzen der Klasse
hinterlegt eine andere Hintergrundfarbe zu, als den normalen
Absätzen. Letztere werden in der üblichen Weise formatiert.
Tritt der Fall ein, dass mehrere HTML-Elemente einer
Klasse hinterlegt zugeordnet werden sollen, z. B. neben dem
Element p auch noch das Element h1, so müsste für
jedes derartige Element eine entsprechende CSS-Anweisung vorgesehen werden. Um
unnötige Schreibarbeit zu vermeiden gibt es für diesen Fall eine abkürzende
Notation:
*.hinterlegt { background-color:#FFFF00 }
Der Stern an Stelle des Elementbezeichners bedeutet soviel wie: die folgende Anweisung gilt für alle HTML-Elemente mit dieser Klassenzugehörigkeit. Er kann auch entfallen, d. h. die obige Anweisung könnte auch wie folgt notiert werden:
.hinterlegt { background-color:#FFFF00 }
Aufgabe:
Fügen Sie Ihrer HTML-Datei einen Absatz der Klasse
hinterlegthinzu und eine CSS-Anweisung, die Absätzen dieser Klasse eine neue Hintergrundfarbe gibt. Sie können hier auch noch weitere Eigenschaften, wie z. B. die Schriftart, modifizieren.
Eine wichtige Aufgabe bei der Gestaltung eines Webauftrittes ist die Aufteilung der Webseiten in Bereiche, die jeweils eine andere Funktion besitzen. Mit dem letzten Übungsblatt haben wir die klassische Methode gesehen, bei der die Aufteilung mit Hilfe von HTML-Tabellen geschieht.
Da das Seitenlayout einen wichtigen Aspekt bei der Entwicklung der Cascading Style Sheets darstellt, ist es mit diesen z. B. möglich, Elemente pixelgenau im Anzeigefenster des Webbrowsers zu positionieren und die Position von Elementen untereinander festzulegen. Dazu gehören Angaben zum absoluten und relativen Positionieren von Elementen, Angaben zu deren Ausdehnung, zum Umfließen von Elementen und Angaben zum Überlappen und Anzeigen von Elementen.
Eine wichtige Rolle spielen in diesem Zusammenhang die
HTML-Elemente <div>
und <span>,
mit denen gesonderte Bereiche in einer Webseite ausgezeichnet werden können.
Mit Hilfe dieser Elemente lässt sich z. B. Text klassifizieren, ohne dass die
Klasse an ein bestimmtes Textstrukturelement, wie z. B. <p>,
gebunden werden muss. Der Unterschied zwischen <div> und
<span> besteht darin, dass <div> im
Textfluss einen Zeilenwechsel erzwingt, wohingegen <span>
überhaupt keine spezifischen Eigenschaften besitzt.
Auf der Grundlage dieser beiden Elemente ist es
möglich, ganz neue Formate zu definieren, oder sogar HTML-Elemente zu ersetzen.
Das folgende Beispiel zeigt, wie das <p>-Element durch eine
eigene Definition ersetzt werden könnte.
<html>
<head>
<style type="text/css">
<!--
.Absatz {
font-family:Arial,sans-serif;
font-size:11pt;
color:black;
margin-top:6px; /* Abstand zum vorherigen Absatz */
margin-bottom:6px; /* Abstand zum nachfolgenden Absatz */
}
-->
</style>
</head>
<body>
<div class="Absatz">Absatz 1</div>
<div class="Absatz">Absatz 2</div>
</body>
</html>
Aufgaben:
Probieren Sie den Beispielcode aus.
Konstruieren Sie auf dieser Grundlage einen Ersatz für das
<h1>-Element. Schauen Sie sich in diesem Zusammenhang die CSS-Eigenschaften zur Schriftformatierung an.
Neben der Möglichkeit, mit Hilfe von Klassen neue
Textformate festzulegen, können ebenfalls sogenannte "Individualformate"
definiert werden. Diese Formate werden nicht über das Universalattribut
class= angesprochen, sondern über das Universalattribut
id=. Individualformate erlauben es, die Seitenaufteilung selbst zu
steuern, wodurch dem Browser die Kontrolle über den Textumbruch entzogen wird.
Skalierungen des Browserfensters führen in den Bereichen, die einem
Individualformat unterliegen, nicht mehr automatisch zu einer neuen Aufteilung
des Texts. Das Browserfenster fungiert nur noch als Fenster in diesen Bereich.
Bei Skalierung des Fensters wird nur noch der sichtbare Teil des Bereichs bzw.
des in diesem Bereich vorhandenen Texts angezeigt. Mit Hilfe von
Individualformaten lässt sich also der Seitenaufbau eines Webauftrittes bzw.
-portals frei konfigurieren.
Mit dem folgenden Code kann z. B. für die Seitenüberschrift ein Bereich definiert werden, innerhalb dessen die Überschrift erscheinen soll.
<html>
<head>
<style type="text/css">
<!--
#Überschriftsbereich {
position:absolute;
top:10px;
left:10px;
width:500px;
height:40px;
background-color: rgb(128,255,255);
font-family:Arial,sans-serif;
font-size: 24pt;
padding-top:5px;
text-align:center
}
-->
</style>
</head>
<body>
<div id="Überschriftsbereich">Überschrift</div>
</body>
</html>
position:absolute bedeutet hierbei, dass
sich die folgenden Positionsangaben top
und left auf den Rand des Elternelementes, hier
<body>, d. h. die Seite selbst, beziehen. width
und height legen die Größe des Bereiches in Form von
Bildelementen, d. h. Pixel px, fest. background-color
definiert die Hintergrundfarbe des Bereiches. Mit padding-top wird
der Abstand zwischen dem Text und dem oberen Rand des Bereiches festgelegt. Mit
text-align die gewünschte Textausrichtung, hier: zentriert.
Individualformate beginnen im Selektor mit dem Gatterzeichen #, gefolgt von dem
Namen.
Aufgaben:
Probieren Sie den Beispielcode aus.
Definieren Sie einen zweiten Bereich mit Namen "Textbereich" für einen Textabsatz unterhalb der Überschrift. Dieser soll eine eigene Hintergrundfarbe aufweisen, sich nahtlos an den Überschriftsbereich anfügen und bei gleicher Breite eine Höhe von z. B. 200 Pixel besitzen.
Eine Übersicht der vielfältigen Möglichkeiten zur Formatierung mit CSS finden Sie in der Kurzreferenz: CSS von SelfHTML. Detailliertere Beschreibungen der einzelnen Eigenschaften unter CSS-Eigenschaften.
Wie Sie an den Beispielen oben sehen, kann eine
Webseite mit Hilfe von CSS-Anweisungen in einzelne Bereiche aufgeteilt werden.
Hierauf fußt die Gestaltung von Webseiten mittels Cascading Style Sheets. Die
Bereiche werden als Boxen bezeichnet. Boxen lassen sich sowohl
verschachteln, als auch nebeneinander legen. Sie werden üblicherweise
HTML-Elementen zugeordnet, z. B. dem <div>-Element. Die
Wurzel der dabei entstehenden Hierarchie bildet das Body-Element. Es enthält
alle anderen Elemente bzw. Boxen der Seite.
Eine fortlaufende Anzahl von
<div>-Elementen mit zugehörender Box erzeugt eine ebenfalls
fortlaufende Anordnung dieser Boxen in vertikaler Richtung auf der Webseite.
Diese Art Boxen werden auch als Block-Boxen bezeichnet. Den
HTML-Elementen <div>, <p> und
<body> werden immer Block-Boxen zugeordnet.
Anders ist die Situation bei Benutzung der
HTML-Elemente <span> und <a>. Diesen
Elementen werden sogenannte Inline-Boxen zugewiesen. Diese Boxen darf
der Webbrowser umbrechen. Sie können über mehrere Zeilen laufen.
Das Box-Modell
unterscheidet zwischen Polsterung (engl.: padding), Rahmen (engl.:
border) und Rand (engl.: margin). Zwischen dem Inhalt einer Box,
z. B. einem Text, und ihrem Rahmen (border) sitzt ein Polster (padding). Ein
Rand (margin) isoliert die Box samt Rahmen von ihrer Umgebung. Polster, Rahmen
und Rand lassen sich in allen vier Richtungen (top, bottom, left, right)
einzeln einstellen, z. B. margin-top oder
padding-top. Eine Reihe von diesen Eigenschaften haben wir im
Rahmen dieses Übungsblattes bereits benutzt.
Die Werte der vier Richtungen lassen sich auch in einem gemeinsamen Attribut zusammenfassen, wobei die Seiten im Uhrzeigersinn verteilt werden. Die folgenden Werte würden jeden Absatz oben (12 Uhr) mit 12pt, rechts mit 3pt, unten mit 6pt und links mit 9pt umranden:
p { margin: 12pt 3pt 6pt 9pt}
Mit dem Beispiel aus der letzten Übung haben wir das Fenster des Browsers in zwei Bereiche eingeteilt: ein Überschriftsbereich, unter dem ein Textbereich angeordnet ist. Zu einem Webauftritt gehört üblicherweise zusätzlich eine Menüleiste, die z. B. am linken Fensterrand angeordnet ist.
Aufgaben:
Ergänzen Sie ihr Beispiel, durch Hinzufügen einer weiteren Box, um eine Menüleiste, die einige Menüeinträge besitzt und am linken Fensterrand angeordnet ist, sodass Sie einen Aufbau erhalten, der der folgenden Darstellung entspricht (bei freigestellter Farb- und Fontwahl).

Wenn Sie den Textbereich mit Text auffüllen, sodass dieser nicht mehr in die Box passt, wird die zugehörende Box automatisch nach unten vergrößert. In der Folge schließen die Boxen unten nicht mehr bündig ab. Dies ist ein grundsätzliches Problem bei der Gestaltung mit CSS 2.0. Es gibt hier diverse Lösungen, die mehr oder weniger alle in die Kategorie "Hacks" gehören, da Sie bestimmte Browsereigenschaften ausnutzen oder Interpretationsspielräume des CSS-Standards. Wir gehen deshalb hier nicht weiter auf diese Problematik ein. Eine einfache Lösungen dieses Problem besteht darin, den Textbereich mit Scrollbalken zu versehen. Sie erreichen dies mit Hilfe der Anweisung
overflow: scroll;Zusätzlich kann es erforderlich sein, die Höhe der Textbox durch Ersetzen vonheightdurchmax-heightauf einen Maximalwert zu begrenzen. Sobald der Text zu lang wird, werden die Scrollbalken aktiviert und können zum Blättern benutzt werden.

Zum Schluss dieser Ausführungen kehren wir dorthin wieder zurück, wo wir hinsichtlich der Seitenaufteilung begannen: bei der Tabelle. Genauso, wie Tabellen benutzt werden könnten, um Webseiten in einzelne Bereiche aufzuteilen, könnten CSS-Formate benutzt werden, um eine einfache Tabelle zu erzeugen. Schauen Sie sich hierzu den Abschnitt zum Thema Anzeige von Elementen an.
Aufgabe:
Erzeugen Sie die untenstehende Tabelle mit Hilfe des
<div>-Elements und CSS-Formaten:

So wenig sinnvoll es ist, das Seitenlayout mit Hilfe von einem
Textstrukturierungselement, d. h. einer Tabelle, durchzuführen, so
wenig sinnvoll ist es allerdings auch, HTML-Elemente, die für die
Textstrukturierung gedacht sind,
durch das <div>-Element in Kombination mit
CSS-Formaten zu ersetzen.