033.1 Lektion 1
Zertifikat: |
Web Development Essentials |
---|---|
Version: |
1.0 |
Thema: |
033 Gestaltung von Inhalten mit CSS |
Lernziel: |
033.1 CSS-Grundlagen |
Lektion: |
1 von 1 |
Einführung
Alle Webbrowser geben HTML-Seiten nach standardisierten Darstellungsregeln wieder, die praktisch und einfach, aber optisch wenig ansprechend sind. HTML selbst bietet nur wenige Funktionen, um aufwendige Seiten zu schreiben, die modernen Konzepten der Benutzerfreundlichkeit folgen. Sie haben vermutlich festgestellt, dass unsere ersten HTML-Seiten im Vergleich zu gut gestalteten Seiten im Internet unansehnlich sind. Das liegt daran, dass in modernem HTML der Auszeichnungscode, der Struktur und Funktion der Elemente im Dokument bestimmt (Semantik), von den Regeln getrennt ist, die festlegen, wie die Elemente aussehen sollen (Darstellung). Die Regeln für die Darstellung werden in einer anderen Sprache geschrieben, den Cascading Style Sheets (CSS). Damit gestalten Sie fast alle visuellen Aspekte des Dokuments, z.B. Schriftarten, Farben und die Anordnung der Elemente auf der Seite.
HTML-Dokumente sind in den meisten Fällen nicht dafür gedacht, in einem festen Layout angezeigt zu werden wie etwa eine PDF-Datei. Vielmehr werden HTML-basierte Webseiten auf einer Vielzahl von Bildschirmgrößen wiedergegeben oder sogar gedruckt. Über einstellbare Optionen stellt CSS sicher, dass die Webseite wie gewünscht erscheint — angepasst an das Gerät oder die Anwendung, die sie öffnet.
Stile anwenden
Es gibt mehrere Möglichkeiten, CSS in ein HTML-Dokument einzubinden: Sie können es direkt in das Tag des Elements schreiben, in einen separaten Abschnitt des Quellcodes der Seite oder in eine externe Datei, auf die die HTML-Seite verweist.
Das Attribut style
Der einfachste Weg, den Stil eines bestimmten Elements zu ändern, besteht darin, ihn mit dem Attribut style
direkt in das Element-Tag zu schreiben. Alle sichtbaren HTML-Elemente erlauben ein style
-Attribut, dessen Wert eine oder mehrere CSS-Regeln sein können, auch bekannt als Eigenschaften oder Properties. Beginnen wir mit einem einfachen Beispiel, einem Absatzelement:
<p>My stylized paragraph</p>
Die grundlegende Syntax einer benutzerdefinierten CSS-Eigenschaft lautet Eigenschaft: Wert
, wobei Eigenschaft
der bestimmte Aspekt ist, den Sie in dem Element ändern möchten, und Wert
den Ersatz für die vom Browser vorgenommene Standardoption definiert. Einige Eigenschaften gelten für alle Elemente, andere Eigenschaften nur für bestimmte Elemente. Ebenso gibt es für jede Eigenschaft passende Werte, die zu verwenden sind.
Um die Farbe unseres einfachen Absatzes zu ändern, verwenden wir zum Beispiel die Eigenschaft color
. Die Eigenschaft color
bezieht sich auf die Vordergrundfarbe, d.h. die Farbe der Buchstaben des Absatzes. Die Farbe selbst steht im Werteteil der Regel und kann in vielen verschiedenen Formaten angegeben werden, einschließlich einfacher Namen wie red
, green
, blue
, yellow
usw. Um also die Schrift des Absatzes lila zu färben, fügen Sie die angepasste Eigenschaft color: purple
zum Attribut style
des Elements hinzu:
<p style="color: purple">My first stylized paragraph</p>
Andere benutzerdefinierte Eigenschaften können in der gleichen Eigenschaft style
enthalten sein, müssen aber jeweils durch Semikolon getrennt werden. Um etwa auch die Schrift zu vergrößern, fügen Sie font-size: larger
zur Eigenschaft style
hinzu:
<p style="color: purple; font-size: larger">My first stylized paragraph</p>
Note
|
Es ist nicht notwendig, Leerzeichen um die Doppelpunkte und Semikola zu setzen, aber sie verbessern die Lesbarkeit des CSS-Codes . |
Um das Ergebnis dieser Änderungen zu sehen, speichern Sie den folgenden HTML-Code in einer Datei und öffnen Sie diese dann in einem Webbrowser (Figure 1):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS Basics</title>
</head>
<body>
<p style="color: purple; font-size: larger">My first stylized paragraph</p>
<p style="color: green; font-size: larger">My second stylized paragraph</p>
</body>
</html>
Stellen Sie sich jedes Element auf der Seite als ein Rechteck oder einen Kasten vor, dessen geometrische Eigenschaften und Gestaltung Sie mit CSS manipulieren. Der Rendering-Mechanismus verwendet zwei Standardkonzepte für die Platzierung von Elementen: Block-Platzierung und Inline-Platzierung. Block-Elemente nehmen den gesamten horizontalen Platz ihres übergeordneten Elements ein und werden von oben nach unten gesetzt. Ihre Höhe (ihre vertikale Dimension, nicht zu verwechseln mit ihrer Top-Position auf der Seite) hängt im Allgemeinen von der Menge ihres Inhalts ab. Inline-Elemente folgen der Links-nach-Rechts-Methode, ähnlich wie in westlichen Schriftsprachen: Elemente werden horizontal von links nach rechts platziert, bis auf der rechten Seite kein Platz mehr ist, woraufhin das Element in einer neuen Zeile direkt unter der aktuellen Zeile fortgesetzt wird. Elemente wie p
, div
und section
werden standardmäßig als Blöcke platziert, während Elemente wie span
, em
, a
und einzelne Buchstaben inline platziert werden. Diese grundlegenden Platzierungsmethoden können Sie über CSS-Regeln grundlegend ändern.
Das Rechteck, das dem Element p
im Body des HTML-Beispiels entspricht, wird sichtbar, wenn Sie die Eigenschaft background-color
zur Regel hinzufügen (Figure 2):
<p style="color: purple; font-size: larger; background-color: silver">My first stylized paragraph</p>
<p style="color: green; font-size: larger; background-color: silver">My second stylized paragraph</p>
Wenn Sie dem Attribut style
neue benutzerdefinierte CSS-Eigenschaften hinzufügen, werden Sie feststellen, dass der Code insgesamt unübersichtlich wird. Zu viele CSS-Regeln im style
-Attribut weichen die Trennung von Struktur (HTML) und Darstellung (CSS) auf. Außerdem nutzen verschiedene Elemente dieselben Stile, und es ist nicht ratsam, sie in jedem Element zu wiederholen.
CSS-Regeln
Statt die Elemente direkt in ihren style
-Attributen anzupassen, ist es viel praktischer, dem Browser sämtliche Elemente zu nennen, für die ein benutzerdefinierter Stil gilt. Das geschieht über einen sogenannten Selektor, den wir den benutzerdefinierten Eigenschaften hinzufügen. Er gleicht Elemente nach Typ, Klasse, ID, relativer Position usw. ab. Die Kombination aus einem Selektor und Eigenschaften — auch als Deklarationen bezeichnet — nennt man CSS-Regel. Die grundlegende Syntax einer CSS-Regel lautet Selektor { Eigenschaft: Wert }
. Wie beim Attribut style
können durch Semikolon getrennte Eigenschaften gruppiert werden, wie in p { color: purple; font-size: larger }
. Diese Regel passt zu jedem p
-Element auf der Seite und wendet die angepassten Eigenschaften color
und font-size
an.
Eine CSS-Regel für ein übergeordnetes Element wird automatisch auf alle seine untergeordneten Elemente angewendet. Das bedeutet, dass wir die benutzerdefinierten Eigenschaften auf den gesamten Text der Seite anwenden können, unabhängig davon, ob er sich innerhalb oder außerhalb eines <p>
-Tags befindet, indem wir stattdessen den Selektor body
verwenden: body { color: purple; font-size: larger }
. Diese Strategie erspart es uns, dieselbe Regel für alle Kinder zu schreiben, wobei es notwendig sein kann, zusätzliche Regeln zu schreiben, um die geerbten Regeln zu ändern oder zu “ignorieren”.
Das Tag style
Mit dem <style>
-Tag schreiben wir CSS-Regeln innerhalb der HTML-Seite, die wir gestalten. Es ermöglicht es dem Browser, den CSS-Code vom HTML-Code zu unterscheiden. Das <style>
-Tag steht im head
-Abschnitt des Dokuments:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS Basics</title>
<style type="text/css">
p { color: purple; font-size: larger }
</style>
</head>
<body>
<p>My first stylized paragraph</p>
<p>My second stylized paragraph</p>
</body>
</html>
Das type
-Attribut teilt dem Browser mit, welche Art von Inhalt sich innerhalb des <style>
-Tags befindet, d.h. den MIME-Typ. Da jeder Browser, der CSS unterstützt, davon ausgeht, dass der Typ des <style>
-Tags standardmäßig text/css
ist, ist die Angabe des Attributs type
optional. Es gibt auch ein media
-Attribut, das das Medium angibt — z.B. Bildschirm oder Ausdruck — für das die CSS-Regeln im <style>
-Tag gelten. Standardmäßig gelten die CSS-Regeln für jedes Medium, auf dem das Dokument dargestellt wird.
Wie im HTML-Code ändern Zeilenumbrüche und Einrückungen nichts daran, wie der Browser die CSS-Regeln interpretiert:
<style type="text/css">
p { color: purple; font-size: larger }
</style>
liefert dasselbe Ergebnis wie:
<style type="text/css">
p {
color: purple;
font-size: larger;
}
</style>
Die zusätzlichen Bytes, die durch die Leerzeichen und Zeilenumbrüche anfallen, machen nur einen geringen Unterschied in der Dokumentgröße und haben keine nennenswerten Auswirkungen auf die Ladezeit der Seite, so dass die Wahl des Layouts eine Frage des Geschmacks ist. Beachten Sie das Semikolon nach der letzten Deklaration (font-size: larger;
) der CSS-Regel. Dieses Semikolon ist nicht zwingend erforderlich, aber es erleichtert das Hinzufügen einer weiteren Deklaration in der nächsten Zeile, ohne dass man sich Gedanken über fehlende Semikola machen muss.
Die Deklarationen in separaten Zeilen machen es einfacher, einzelne Deklarationen auszukommentieren. Um eine Deklaration zum Beispiel zur Fehlersuche vorübergehend zu deaktivieren, schließen Sie die entsprechende Zeile mit /*
und */
ein:
p {
color: purple;
/*
font-size: larger;
*/
}
oder:
p {
color: purple;
/* font-size: larger; */
}
So geschrieben, ignoriert der Browser die Deklaration font-size: larger
. Achten Sie darauf, die Kommentare richtig zu öffnen und zu schließen, da der Browser die Regeln sonst möglicherweise nicht interpretieren kann.
Kommentare sind auch nützlich, um die Regeln zu erläutern:
/* Texts inside <p> are purple and larger */
p {
color: purple;
font-size: larger;
}
Zusätze wie in diesem Beispiel sind in Stylesheets mit wenigen Regeln entbehrlich, aber sie sind unerlässlich, um über Stylesheets mit Hunderten (oder mehr) Regeln den Überblick zu behalten.
Obwohl das style
-Attribut und das <style>
-Tag für das Testen benutzerdefinierter Stile geeignet und in bestimmten Situationen nützlich sind, werden sie nicht häufig verwendet. Stattdessen werden die CSS-Regeln üblicherweise in einer separaten Datei gespeichert, auf die im HTML-Dokument verwiesen wird.
CSS in externen Dateien
Die bevorzugte Methode, CSS-Definitionen mit einem HTML-Dokument zu verknüpfen, besteht darin, das CSS in einer separaten Datei zu speichern. Diese Methode bietet zwei wesentliche Vorteile gegenüber den vorherigen Methoden:
-
Verschiedene Dokumente können dieselben Styling-Regeln nutzen.
-
Der Browser speichert die CSS-Datei in der Regel zwischen, was die Ladezeiten künftig verbessert.
CSS-Dateien haben die Endung .css
und lassen sich wie HTML-Dateien mit einem beliebigen Texteditor bearbeiten. Im Gegensatz zu HTML-Dateien haben CSS-Dateien keine Struktur auf oberster Ebene mit hierarchischen Tags wie <head>
oder <body>
. Vielmehr ist die CSS-Datei nur eine Liste von Regeln, die der Browser in einer bestimmten Reihenfolge abarbeitet. Die gleichen Regeln, die in einem <style>
-Tag stehen, könnten auch in einer CSS-Datei stehen.
Die Verbindung zwischen dem HTML-Dokument und den in einer Datei gespeicherten CSS-Regeln wird nur im HTML-Dokument definiert. Für die CSS-Datei spielt es keine Rolle, ob es Elemente gibt, die ihren Regeln entsprechen, so dass es nicht notwendig ist, in der CSS-Datei die HTML-Dokumente aufzuzählen, mit denen sie verknüpft ist. Auf der HTML-Seite wird jedes verknüpfte Stylesheet auf das Dokument so angewandt, als wären die Regeln in einem <style>
-Tag enthalten.
Das HTML-Tag <link>
definiert ein externes Stylesheet, das im aktuellen Dokument verwendet werden soll. Es sollte im head
-Abschnitt des HTML-Dokuments stehen:
<head>
<meta charset="utf-8" />
<title>CSS Basics</title>
<link href="style.css" rel="stylesheet">
</head>
Jetzt können Sie die zuvor verwendete Regel für das Element p
in die Datei style.css
einfügen. Die Ergebnisse, die der Besucher der Webseite sieht, werden die gleichen sein. Wenn sich die CSS-Datei nicht im selben Verzeichnis wie das HTML-Dokument befindet, geben Sie ihren relativen oder vollständigen Pfad im Attribut href
an. Das <link>
-Tag kann auf verschiedene Arten von externen Ressourcen verweisen, so dass klar sein muss, welche Beziehung die externe Ressource zum aktuellen Dokument hat. Für externe CSS-Dateien wird die Beziehung in rel="stylesheet"
definiert.
Das Attribut media
nutzen Sie auf die gleiche Weise wie das <style>
-Tag: Es gibt das Medium an, auf das die Regeln in der externen Datei angewendet werden sollen, z.B. Computerbildschirm oder Druckausgabe.
CSS kann ein Element vollständig verändern, aber es ist trotzdem wichtig, das richtige Element für die Komponenten der Seite zu verwenden. Andernfalls können unterstützende Technologien wie Screenreader die richtigen Abschnitte der Seite möglicherweise nicht erkennen.
Geführte Übungen
-
Welche Methoden dienen dazu, das Aussehen von HTML-Elementen mit CSS zu verändern?
-
Warum ist es nicht empfehlenswert, das Attribut
style
des<p>
-Tags zu nutzen, um mehrere Absätze gleich aussehen zu lassen? -
Wie wird ein
div
-Element standardmäßig platziert? -
Welches Attribut des
<link>
-Tags gibt den Speicherort einer externen CSS-Datei an? -
In welchem Abschnitt eines HTML-Dokuments sollten Sie das
link
-Element platzieren?
Offene Übungen
-
Warum ist es nicht empfehlenswert, ein
<div>
-Tag zu nutzen, um ein Wort in einem normalen Satz zu kennzeichnen? -
Was passiert, wenn Sie in der Mitte einer CSS-Datei einen Kommentar mit
/*
beginnen, aber vergessen, ihn mit*/
zu schließen? -
Schreiben Sie eine CSS-Regel, um alle
em
-Elemente des Dokuments zu unterstreichen. -
Wie geben Sie an, dass ein Stylesheet aus einem
<style>
- oder<link>
-Tag nur von Sprachsynthesizern verwendet werden soll?
Zusammenfassung
Diese Lektion befasst sich mit den grundlegenden Konzepten von CSS und wie man es in HTML integriert. In CSS-Stylesheets geschriebene Regeln sind die Standardmethode, um das Aussehen von HTML-Dokumenten zu ändern. CSS macht es möglich, den semantischen Inhalt von den Präsentationsregeln zu trennen. In dieser Lektion werden die folgenden Konzepte und Verfahren behandelt:
-
Wie man CSS-Eigenschaften mit dem Attribut
style
ändert. -
Die grundlegende CSS-Regelsyntax.
-
Verwendung des
<style>
-Tags, um CSS-Regeln in das Dokument einzubetten. -
Verwendung des
<link>
-Tags, um externe Stylesheets in das Dokument einzubinden.
Lösungen zu den geführten Übungen
-
Welche Methoden dienen dazu, das Aussehen von HTML-Elementen mit CSS zu verändern?
Es gibt drei grundlegende Methoden: Man schreibt sie direkt in das Tag des Elements, in einen separaten Abschnitt des Quellcodes der Seite oder in eine externe Datei, auf die die HTML-Seite verweist.
-
Warum ist es nicht empfehlenswert, das Attribut
style
des<p>
-Tags zu nutzen, um mehrere Absätze gleich aussehen zu lassen?Die CSS-Deklaration muss in den anderen
<p>
-Tags wiederholt werden, was zeitaufwendig ist, die Dateigröße erhöht und fehleranfällig ist. -
Wie wird ein
div
-Element standardmäßig platziert?Das
div
-Element wird standardmäßig als Block-Element behandelt, so dass es den gesamten horizontalen Platz seines übergeordneten Elements einnimmt und seine Höhe von seinem Inhalt abhängt. -
Welches Attribut des
<link>
-Tags gibt den Speicherort einer externen CSS-Datei an?Das Attribut
href
. -
In welchem Abschnitt eines HTML-Dokuments sollten Sie das
link
-Element platzieren?Das
link
-Element sollte sich imhead
-Abschnitt des HTML-Dokuments befinden.
Lösungen zu den offenen Übungen
-
Warum ist es nicht empfehlenswert, ein
<div>
-Tag zu nutzen, um ein Wort in einem normalen Satz zu kennzeichnen?Das
<div>
-Tag bietet eine semantische Trennung zwischen zwei Abschnitten des Dokuments und stört den Zugriff von Tools für Barrierefreiheit, wenn es für Inline-Textelemente verwendet wird. -
Was passiert, wenn Sie in der Mitte einer CSS-Datei einen Kommentar mit
/*
beginnen, aber vergessen, ihn mit*/
zu schließen?Der Browser ignoriert alle Regeln, die auf den Kommentar folgen.
-
Schreiben Sie eine CSS-Regel, um alle
em
-Elemente des Dokuments zu unterstreichen.em { text-decoration: underline }
oder
em { text-decoration-line: underline }
-
Wie geben Sie an, dass ein Stylesheet aus einem
<style>
- oder<link>
-Tag nur von Sprachsynthesizern verwendet werden soll?Der Wert des Attributs
media
mussspeech
sein.