Einführung CSS
Die Struktur eines HTML Dokumentes besteht aus einer Vielzahl verschachtelter Tags deren Relation
zueinander wie in einer Familie bezeichnet wird. Parent und Child bezeichnet dabei direkt über bzw.
untergeordnete Tags. Siblings sind Tags mit dem selben parent Tag und mit Ancestors werden alle
übergeordneten Tags bezeichnet.
Mit Cascading Style Sheets (CSS) lassen sich HTML Tags formatieren. Eine externe CSS Datei wird im
<head>
Bereich eines HTML Dokumentes mit folgender Definition eingebunden:
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<meta charset="UTF-8">
<title>Hello World | Website</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>
Die Datei style.css liegt in diesem Beispiel im Unterordner css des Arbeitsverzeichnisses (relativer Pfad). In der CSS Datei werden so genannte Selektoren verwendet, um Tags anzusprechen. Selektoren bestehen im einfachsten Fall aus einem Tag.
Beispiel | Allgemein | Erläuterung |
---|---|---|
p {color: red;} |
Selektor {Eigenschaft: Wert;} |
Die Farbe von Text innerhalb aller p-Tags wird auf rot gesetzt. |
Wird ein Tag als Selektor verwendet, werden alle Tags dieser Sorte entsprechend formatiert. Um einzelne oder eine Gruppe von Tags zu formatieren, erhalten die Tags im HTML Code Attribute. Dabei kommen zwei Attribute zum Einsatz:
Attribut | Erläuterung | Beispiel |
---|---|---|
class | Klasse. Wird im Allgemeinen verwendet. | <div class="section"> |
id | ID. Für Elemente die ein einziges Mal verwendet werden. | <h1 id="main-title" |
Beispiel für HTML Code
<div class="section">
<h1 id="main-title">Lorem ipsum</h1>
<p class="content"><strong>Lorem ipsum</strong> dolor sit amet, <em>consectetur</em> adipiscing elit.
Nulla vel metus porta, cursus libero in, varius metus. Praesent scelerisque iaculis lectus. Suspendisse nec
maximus massa. Cras viverra leo quis molestie tincidunt. In dignissim congue dapibus. Duis at imperdiet
erat. Cras arcu nibh, eleifend volutpat sagittis eu, venenatis vitae mauris.</p>
<p class="content second">Donec tincidunt cursus ipsum, ut convallis lorem dictum et. <del>Cras id risus
magna.</del> Praesent dui libero, hendrerit a consectetur id, vehicula ut nibh. Nulla nec consectetur leo.</p>
<hr>
<p class="important">Phasellus non leo semper, lobortis mi nec, gravida quam. <span class="small">Etiam feugiat
eget lectus quis blandit.</span></p>
</div>
Beispiel für CSS Code
p { /* Gilt für alle p-Tags */
color: blue; /* Textfarbe ist blau */
font-size: 18px; /* Schriftgröße ist 18px */
}
p.important { /* Gilt nur für p Tags mit der Klasse important */
text-decoration: underline; /* Text wird unterstrichen */
}
Der Text innerhalb aller p Tags wird blau und mit der Schriftgröße 18px dargestellt. Text innerhalb von p Tags mit der Klasse .important
wird zusätzlich unterstrichen.
Selektoren
Mit Selektoren können Elemente eines HTML-Dokumentes ausgewählt werden um ihre Eigenschaften mit CSS anzupassen.
Tags werden direkt (z.B. p {color: red}
), Klassen mit einem Punkt vor dem Namen (.content {color: red})
und IDs mit einer Raute vor dem Namen (#main-title {color: red}
) selektiert.
Selektoren können auch kombiniert und verschachtelt werden. Folgende Kombinationen sind möglich:
Selektor | Bedeutung | Beispiel |
---|---|---|
Tags und/oder Klassen/IDs direkt hintereinander | Tags mit den entsprechenden Klassen/IDs werden ausgewählt | div.content {…} |
Tags und/oder Klassen/IDs durch ein Leerzeichen getrennt | Es handelt sich um eine hierarchische Auswahl. Nachfolgende Selektoren müssen sich innerhalb der vorangegangenen befinden | div p .small {…} |
Tags und/oder Klassen/IDs durch ein Komma getrennt | Anweisungen gilt für jeden Selektor. | p, .content, div#section {…} |
Beispiele für Selektoren
Selektor | Bedeutung |
---|---|
p | Alle p-Tags |
p.content | Alle p-Tags mit der Klasse content |
p.second | Alle p-Tags mit der Klasse second |
.content.second | Alle Tags mit der Klasse content und second |
div .content | Alle Tags mit der Klasse content unterhalb eines div-Tags |
* | Alle Tags |
#main-title | Alle Tags mit der id main-title |
p.second, div | Alle p-Tags mit der Klasse second und alle div-Tags |
div p | Alle p-Tags innerhalb von div-Tags |
div.#main img | Alle img-Tags innerhalb von div-Tags mit der ID main |
Merke: Elemente, die mit der Maus überfahren werden, können mit
:hover
nach einem Selektor ausgewählt werden. (Für die Formatierung von Links besonders sinnvoll. Beispiel:a:hover
. Besuchte Links sollten auch formatiert werden, mita:visited
.)
Beispiel
a, a:visited { /* besuchte und nichtbesuchte Links erhalten die gleiche Formatierung */
text-decoration: none; /* die Links werden nicht unterstrichen */
color: steelblue; /* erhalten aber zum Erkennen eine andere Farbe */
}
a:hover {
text-decoration: underline;
}
Formatieren mit CSS
Eigenschaft | mögliche Werte | Erläuterungen |
---|---|---|
font-family | sans-serif|serif | Es können auch spezielle Schriftarten verwendet werden |
font-weight | normal|bold | |
font-size | 12px | |
color | Farben | |
text-decoration | none|underline | für Links (a-Tag) |
text-align | left|right|center|justify | Text innerhal von Tags ausrichten |
border | 1px solid|dashed red | breite des Rahmens, Art und Farbe |
background | Farben | Farbe des Hintergundes anpassen (weitere Eigenschaften) |
padding (Innenabstand) | 1px 1px 1px 1px | oben rechts unten links |
margin (Außenabstand) | 1px 1px 1px 1px | oben rechts unten links |
width | 300px|50%|auto | auto kann verwendet werden um die Größe eines Elementes anzupassen, ohne das Seitenverhältnis zu ändern. |
height | 300px|50%|auto |
Merke: | steht für “Oder”
body {
font-family: sans-serif; /* Schrift ohne Serifen */
font-size: 12px;
font-weight: normal;
color: black;
text-align: left;
background: white; /* Weiße Hintergrundfarbe */
}
a {
color: blue;
text-decoration: none; /* Normalerweise sind Links unterstrichen */
}
a:hover { /* Links über denen sich der Mauszeiger befindet */
text-decoration: underline;
}
p {
text-align: justify; /* Blocksatz */
}
p.second { /* p-tags mit der Klasse „second“ */
border: 1px solid silver; /* Rahmen 1px breit durchgehend und silberfarben */
}
/* Mit einem Komma können mehrere Tags gleichzeitig ausgewählt werden */
p, div { /* alle p- und div-tags */
padding: 2px 2px 2px 2px;
}
Farben
Farben können mit Namen, Hexadezimalcode oder mit rgb-Werten angegeben werden. Die Angabe darkred
, #8B0000
und rgb(139,0,0)
ergeben die gleiche Farbe (Dunkelrot).
Visual Studio Code hat einen eingebauten Farbwähler.
Farbcodes online generieren (mit Farbnamen)
Rot/Grün/Blau-Mischung
Farben lassen sich mit ihren Rot-, Grün- und Blauanteilen angeben. Dazu wird die Funktion rgb(Rot, Grün, Blau)
eingesetzt. Für Rot, Grün und Blau werden Zahlen im Bereich 0-255 verwendet. Die Zahl steht für den Helligkeitswert der entsprechenden Farbe.
Beispiel
.special {
color: rgb(0,128,0); /* Farbe „green“ */
background-color: rgb(255,127,80); /* Farbe „coral“ */
}
Rot/Grün/Blau-Mischung mit Transparenz
CSS erlaubt es, zur RGB-Mischung noch einen Transparenzwert (Alphawert) hinzuzufügen. Dadurch lassen sich zum Beispiel teiltransparente Hintergrundfarben definieren. Die allgemeine Schreibweise hierfür lautet rgba(Rot, Grün, Blau, Deckkraft)
. Es gelten die
selben Regeln wie für die einfache RGB-Mischung. Der Wert Deckkraft wird jedoch als Dezimalzahl im Bereich 0 (keine Deckkraft, vollkommen transparent) bis 1 (volle Deckkraft, keine Transparenz) angegeben.
Beispiel
div {
background-color: rgba(95,158,160,0.8); /* Farbe „cadetblue“ mit 80% Deckkraft */
}
Schriftarten
Für die Angabe von Schriftarten dürfen keine Systemschriftarten verwendet werden, diese sind nicht auf allen Endgeräten mit denen die Website betrachtet wird verfügbar.
Für Schriftarten bietet sich die Verwendung von Google Fonts an. Wenn eine Schriftart ausgewählt wurde, kann sie mit dem Link “+ Select this Style” neben einem Stil zu den “Selected Families” hinzugefügt werden.
Alle Schriftarten-Stile können anschließend mit einem CSS Eintrag zur Webseite hinzugefügt werden. Die Anweisung lautet @import url('https://fonts.googleapis.com/css2?family=Schrift+Name&display=swap');
und muss am Anfang der CSS Datei stehen, der passende Code kann bei Google Fonts mit einem Klick auf “View your selected Families” (oben rechts) angezeigt werden.
In der CSS-Datei wird font-family: 'Schrift Name', sans-serif;
(sans-serif als Fallback) verwendet, um die Schrift zu verwenden.
Merke: Es werden zwei Einträge benötigt:
@import...
um die Schrift zu laden undfont-family:...
um die Schrifart auf ein Element anzuwenden.
Bilder
Bilder können mit den Eigenschaften width
und height
angepasst werden. Eine der beiden Eigenschaften sollte den Wert auto
bekommen, da sonst das Seitenverhältnis verändert wird.
Sind die img Tags im HTML Code untereinander aufgelistet, so erscheint im Browser ein kleiner Abstand zwischen den Bilder, dieser kann mit der Eigenschaft font-size: 0;
für das Parent-Element entfernt werden. (Werden die img Tags in einer Reihe, gelistet erscheint kein Abstand.)
Beispiel
<div>
<img src="img/img_01.jpg" alt="img 01">
<img src="img/img_02.jpg" alt="img 02">
</div>
div {
font-size: 0;
}
img {
width: 50%;
height: auto;
}
Interne Verknüpfungen
Um auf Elemente innerhalb einer Datei zu verweisen, z.B. um von einem Menü auf eine Überschriften zu verlinken, muss die Überschrift ein Attribut ID id="link"
bekommen, die mit der Verknüpfung referenziert wird mit dem bekannten Attribut REF ref="#link"
(Der Wert der ID mit einem vorangestellten #).
Beispiel
<a href="#title">Title</a>
<h2 id="title">Title</h2>