2. Unterrichtsblock: Farben, Rahmen und Box-Modell

Farben

Bisher haben dir Farbnamen wie crimson gereicht. Davon kennt CSS nur 139, ein Designer will aber jeden beliebigen Farbton. Deshalb kann man Farben auch beschreiben. Mit color färbst du den Text, mit background-color den Hintergrund, in jeder Notation.

SchreibweiseBeispiel (die Farbe seagreen)So funktioniert sie
Farbnameseagreenenglischer Name, einfach zu merken, aber nur 139 Farben
HEX#2e8b57# und drei Paare für Rot, Grün und Blau, jeweils 00 bis ff (hexadezimal)
HEX kurz#fff statt #ffffffwenn jedes Paar aus zwei gleichen Zeichen besteht, darf man abkürzen
RGBrgb(46, 139, 87)Rot, Grün, Blau, jeweils 0 bis 255 (dezimal)
HSLhsl(146, 50%, 36%)Farbton 0 bis 360 (Farbkreis), Sättigung und Helligkeit in Prozent

Alle vier Schreibweisen beschreiben dieselbe Farbe:

<div class="k" style="background-color: seagreen;">seagreen</div>
<div class="k" style="background-color: #2e8b57;">#2e8b57</div>
<div class="k" style="background-color: rgb(46, 139, 87);">rgb(46, 139, 87)</div>
<div class="k" style="background-color: hsl(146, 50%, 36%);">hsl(146, 50%, 36%)</div>
.k {
  color: white;
  padding: 12px;
  margin-bottom: 6px;
}
Ergebnis im Browser

HSL ist für Entwürfe besonders praktisch: Der Farbton bleibt gleich, nur die Helligkeit ändert sich. So entstehen passende Paletten:

<div class="k" style="background-color: hsl(210, 50%, 25%); color: white;">Helligkeit 25 %</div>
<div class="k" style="background-color: hsl(210, 50%, 45%); color: white;">Helligkeit 45 %</div>
<div class="k" style="background-color: hsl(210, 50%, 70%);">Helligkeit 70 %</div>
<div class="k" style="background-color: hsl(210, 50%, 92%);">Helligkeit 92 %</div>
.k {
  padding: 12px;
  margin-bottom: 6px;
}
Ergebnis im Browser

Die komplette Liste der Farbnamen mit HEX- und RGB-Wert:

Alle 139 Farbnamen mit Farbfeld anzeigen
FarbeNameHEXRGB
AliceBlue#F0F8FFrgb(240, 248, 255)
AntiqueWhite#FAEBD7rgb(250, 235, 215)
Aqua#00FFFFrgb(0, 255, 255)
Aquamarine#7FFFD4rgb(127, 255, 212)
Azure#F0FFFFrgb(240, 255, 255)
Beige#F5F5DCrgb(245, 245, 220)
Bisque#FFE4C4rgb(255, 228, 196)
Black#000000rgb(0, 0, 0)
BlanchedAlmond#FFEBCDrgb(255, 235, 205)
Blue#0000FFrgb(0, 0, 255)
BlueViolet#8A2BE2rgb(138, 43, 226)
Brown#A52A2Argb(165, 42, 42)
BurlyWood#DEB887rgb(222, 184, 135)
CadetBlue#5F9EA0rgb(95, 158, 160)
Chocolate#D2691Ergb(210, 105, 30)
Coral#FF7F50rgb(255, 127, 80)
CornflowerBlue#6495EDrgb(100, 149, 237)
Cornsilk#FFF8DCrgb(255, 248, 220)
Crimson#DC143Crgb(220, 20, 60)
Cyan#00FFFFrgb(0, 255, 255)
DarkBlue#00008Brgb(0, 0, 139)
DarkCyan#008B8Brgb(0, 139, 139)
DarkGoldenRod#B8860Brgb(184, 134, 11)
DarkGray#A9A9A9rgb(169, 169, 169)
DarkGreen#006400rgb(0, 100, 0)
DarkKhaki#BDB76Brgb(189, 183, 107)
DarkMagenta#8B008Brgb(139, 0, 139)
DarkOliveGreen#556B2Frgb(85, 107, 47)
DarkOrange#FF8C00rgb(255, 140, 0)
DarkOrchid#9932CCrgb(153, 50, 204)
DarkRed#8B0000rgb(139, 0, 0)
DarkSalmon#E9967Argb(233, 150, 122)
DarkSeaGreen#8FBC8Frgb(143, 188, 143)
DarkSlateBlue#483D8Brgb(72, 61, 139)
DarkSlateGray#2F4F4Frgb(47, 79, 79)
DarkTurquoise#00CED1rgb(0, 206, 209)
DarkViolet#9400D3rgb(148, 0, 211)
DeepPink#FF1493rgb(255, 20, 147)
DeepSkyBlue#00BFFFrgb(0, 191, 255)
DimGray#696969rgb(105, 105, 105)
DodgerBlue#1E90FFrgb(30, 144, 255)
FireBrick#B22222rgb(178, 34, 34)
FloralWhite#FFFAF0rgb(255, 250, 240)
ForestGreen#228B22rgb(34, 139, 34)
Fuchsia#FF00FFrgb(255, 0, 255)
Gainsboro#DCDCDCrgb(220, 220, 220)
GhostWhite#F8F8FFrgb(248, 248, 255)
Gold#FFD700rgb(255, 215, 0)
GoldenRod#DAA520rgb(218, 165, 32)
Gray#808080rgb(128, 128, 128)
Green#008000rgb(0, 128, 0)
GreenYellow#ADFF2Frgb(173, 255, 47)
HoneyDew#F0FFF0rgb(240, 255, 240)
HotPink#FF69B4rgb(255, 105, 180)
IndianRed#CD5C5Crgb(205, 92, 92)
Indigo#4B0082rgb(75, 0, 130)
Ivory#FFFFF0rgb(255, 255, 240)
Khaki#F0E68Crgb(240, 230, 140)
Lavender#E6E6FArgb(230, 230, 250)
LavenderBlush#FFF0F5rgb(255, 240, 245)
LawnGreen#7CFC00rgb(124, 252, 0)
LemonChiffon#FFFACDrgb(255, 250, 205)
LightBlue#ADD8E6rgb(173, 216, 230)
LightCoral#F08080rgb(240, 128, 128)
LightCyan#E0FFFFrgb(224, 255, 255)
LightGoldenRodYellow#FAFAD2rgb(250, 250, 210)
LightGray#D3D3D3rgb(211, 211, 211)
LightGreen#90EE90rgb(144, 238, 144)
LightPink#FFB6C1rgb(255, 182, 193)
LightSalmon#FFA07Argb(255, 160, 122)
LightSeaGreen#20B2AArgb(32, 178, 170)
LightSkyBlue#87CEFArgb(135, 206, 250)
LightSlateGray#778899rgb(119, 136, 153)
LightSteelBlue#B0C4DErgb(176, 196, 222)
LightYellow#FFFFE0rgb(255, 255, 224)
Lime#00FF00rgb(0, 255, 0)
LimeGreen#32CD32rgb(50, 205, 50)
Linen#FAF0E6rgb(250, 240, 230)
Magenta#FF00FFrgb(255, 0, 255)
Maroon#800000rgb(128, 0, 0)
MediumAquaMarine#66CDAArgb(102, 205, 170)
MediumBlue#0000CDrgb(0, 0, 205)
MediumOrchid#BA55D3rgb(186, 85, 211)
MediumPurple#9370DBrgb(147, 112, 219)
MediumSeaGreen#3CB371rgb(60, 179, 113)
MediumSlateBlue#7B68EErgb(123, 104, 238)
MediumSpringGreen#00FA9Argb(0, 250, 154)
MediumTurquoise#48D1CCrgb(72, 209, 204)
MediumVioletRed#C71585rgb(199, 21, 133)
MidnightBlue#191970rgb(25, 25, 112)
MintCream#F5FFFArgb(245, 255, 250)
MistyRose#FFE4E1rgb(255, 228, 225)
Moccasin#FFE4B5rgb(255, 228, 181)
NavajoWhite#FFDEADrgb(255, 222, 173)
Navy#000080rgb(0, 0, 128)
OldLace#FDF5E6rgb(253, 245, 230)
Olive#808000rgb(128, 128, 0)
OliveDrab#6B8E23rgb(107, 142, 35)
Orange#FFA500rgb(255, 165, 0)
OrangeRed#FF4500rgb(255, 69, 0)
Orchid#DA70D6rgb(218, 112, 214)
PaleGoldenRod#EEE8AArgb(238, 232, 170)
PaleGreen#98FB98rgb(152, 251, 152)
PaleTurquoise#AFEEEErgb(175, 238, 238)
PaleVioletRed#DB7093rgb(219, 112, 147)
PapayaWhip#FFEFD5rgb(255, 239, 213)
PeachPuff#FFDAB9rgb(255, 218, 185)
Peru#CD853Frgb(205, 133, 63)
Pink#FFC0CBrgb(255, 192, 203)
Plum#DDA0DDrgb(221, 160, 221)
PowderBlue#B0E0E6rgb(176, 224, 230)
Purple#800080rgb(128, 0, 128)
Red#FF0000rgb(255, 0, 0)
RosyBrown#BC8F8Frgb(188, 143, 143)
RoyalBlue#4169E1rgb(65, 105, 225)
SaddleBrown#8B4513rgb(139, 69, 19)
Salmon#FA8072rgb(250, 128, 114)
SandyBrown#F4A460rgb(244, 164, 96)
SeaGreen#2E8B57rgb(46, 139, 87)
SeaShell#FFF5EErgb(255, 245, 238)
Sienna#A0522Drgb(160, 82, 45)
Silver#C0C0C0rgb(192, 192, 192)
SkyBlue#87CEEBrgb(135, 206, 235)
SlateBlue#6A5ACDrgb(106, 90, 205)
SlateGray#708090rgb(112, 128, 144)
Snow#FFFAFArgb(255, 250, 250)
SpringGreen#00FF7Frgb(0, 255, 127)
SteelBlue#4682B4rgb(70, 130, 180)
Tan#D2B48Crgb(210, 180, 140)
Teal#008080rgb(0, 128, 128)
Thistle#D8BFD8rgb(216, 191, 216)
Tomato#FF6347rgb(255, 99, 71)
Turquoise#40E0D0rgb(64, 224, 208)
Violet#EE82EErgb(238, 130, 238)
Wheat#F5DEB3rgb(245, 222, 179)
White#FFFFFFrgb(255, 255, 255)
WhiteSmoke#F5F5F5rgb(245, 245, 245)
Yellow#FFFF00rgb(255, 255, 0)
YellowGreen#9ACD32rgb(154, 205, 50)
Merke: Die Entwicklerwerkzeuge enthalten einen Farbwähler: Ein Klick auf das Farbquadrat neben einem Farbwert zeigt dir die Farbe und rechnet sie in andere Schreibweisen um.

Aufgabe 1 – Drei Schreibweisen, eine Farbe

Zeit: ca. 7 Minuten

Dieselbe Farbe lässt sich auf mehrere Arten schreiben. Du findest heraus, welche Zahlen hinter dem Namen tomato stecken.

Lege farben.html an (Inhalt des body, das style-Element gehört in den head):

<p class="kasten a">Farbname</p>
<p class="kasten b">HEX</p>
<p class="kasten c">RGB</p>
  1. Schreibe Regeln für .kasten (padding: 20px; und color: white;) und gib .a die Hintergrundfarbe tomato.
  2. Öffne die Entwicklerwerkzeuge (F12), klicke den ersten Absatz an und klicke in der Regel auf das kleine Farbquadrat neben tomato. Lies den HEX-Wert und die RGB-Zahlen ab.
  3. Trage die HEX-Schreibweise bei .b und die RGB-Schreibweise bei .c ein. Sage voraus: Wie sehen die drei Kästen aus? Prüfe es.
  4. Setze bei .c den ersten RGB-Wert (Rot) auf 0. Sage voraus, was passiert, und prüfe es.

Kontrolle: Alle drei Kästen sind gleich rot. Ohne Rotanteil wird der dritte Kasten dunkel blaugrün.

Der vierte Kasten (.d) zeigt Schritt 4. tomato ist #ff6347, also rgb(255, 99, 71): Rot 255 (ff), Grün 99 (63), Blau 71 (47). Ohne Rot bleiben nur Grün und Blau übrig, das ergibt ein dunkles Blaugrün.

Rahmen (border)

Mit border zeichnest du eine Linie um ein Element. Die Kurzschreibweise besteht aus Breite, Linienart und Farbe:

<p class="r solid">solid</p>
<p class="r dashed">dashed</p>
<p class="r dotted">dotted</p>
<p class="r double">double</p>
.r { padding: 8px; }
.solid  { border: 3px solid seagreen; }
.dashed { border: 3px dashed seagreen; }
.dotted { border: 3px dotted seagreen; }
.double { border: 6px double seagreen; }
Ergebnis im Browser

Du kannst auch einzelne Seiten gestalten (border-top, border-right, border-bottom, border-left) und die Ecken mit border-radius runden. Der Wert 50% macht aus einem Quadrat einen Kreis.

<p class="t">Nur unten eine Linie</p>
<p class="k">Abgerundete Ecken</p>
.t { border-bottom: 3px solid crimson; padding: 8px; }
.k { border: 2px solid seagreen; border-radius: 12px; padding: 8px; }
Ergebnis im Browser
Merke: Ohne Linienart (solid, dashed, …) zeichnet der Browser keinen Rahmen, auch wenn Breite und Farbe stehen. border: 3px red; ist wirkungslos.

Innenabstand und Außenabstand

Jedes Element hat zwei Arten von Abstand. padding ist der Innenabstand zwischen Inhalt und Rahmen, der Hintergrund füllt ihn mit. margin ist der Außenabstand um den Rahmen herum und immer durchsichtig.

<div class="a">padding: 24px</div>
<div class="b">margin: 24px</div>
<div class="c">Nachbar</div>
div { border: 2px solid seagreen; background-color: #e6f4ec; }
.a { padding: 24px; }
.b { margin: 24px; }
Ergebnis im Browser

Beide Eigenschaften gibt es für jede Seite einzeln (padding-top, margin-left, …) und als Kurzschreibweise. Die Werte der Kurzschreibweise gehen im Uhrzeigersinn herum, beginnend oben:

WerteBeispielBedeutung
1margin: 10px;alle vier Seiten
2margin: 10px 20px;oben und unten 10, links und rechts 20
3margin: 10px 20px 30px;oben 10, links und rechts 20, unten 30
4margin: 10px 20px 30px 40px;oben, rechts, unten, links
Merke: Dein Browser gibt dem body von Haus aus 8 px Außenabstand. Deshalb liegt eine Seite nie ganz am Rand des Fensters an.

Das Box-Modell

Für den Browser ist jedes Element eine Schachtel. Von innen nach außen besteht sie aus Inhalt, Innenabstand (padding), Rahmen (border) und Außenabstand (margin).

margin (Außenabstand)
border (Rahmen)
padding (Innenabstand)
Inhalt (width und height)

Mit width legst du die Breite des Inhalts fest. Innenabstand, Rahmen und Außenabstand kommen dazu. Das überrascht: Eine Box mit width: 300px und padding: 20px ist insgesamt 340 px breit.

Das ändert die Einstellung box-sizing: border-box;. Dann zählt width bis zur Außenkante des Rahmens, und der Inhalt schrumpft entsprechend. Dasselbe Beispiel, links ohne und rechts mit border-box:

<div class="box a">content-box (Standard)</div>
<div class="box b">border-box</div>
.box { width: 200px; padding: 20px; border: 5px solid seagreen; background-color: #e6f4ec; margin-bottom: 8px; }
.b { box-sizing: border-box; }
Ergebnis im Browser

Weil das ungewohnte Rechnen nervt, schreiben fast alle Entwickler am Anfang ihres Stylesheets diese Regel. Der Stern * steht für alle Elemente:

* {
  box-sizing: border-box;
}
Bestandteilzählt bei width mit (Standard)zählt bei width mit (border-box)
Inhaltja, bestimmt widthja, der Rest nach Abzug
paddingnein, kommt dazuja
bordernein, kommt dazuja
marginneinnein
Merke: Der Außenabstand gehört nie zur Breite des Elements. Er schafft nur Abstand zu den Nachbarn. Senkrechte Außenabstände zweier untereinanderstehender Blöcke addieren sich nicht, es gilt der größere der beiden.

Aufgabe 2 – Wie breit ist die Box?

Zeit: ca. 8 Minuten

Eine Box hat width: 300px;, padding: 20px;, border: 5px solid darkslategray; und margin: 10px;. Rechne zuerst, dann prüfe.

  1. Berechne, wie breit die Box samt Innenabstand und Rahmen ist, und wie viel Platz sie mit dem Außenabstand in der Zeile belegt.
  2. Lege box-breite.html an und prüfe die Rechnung. Fahre dazu in den Entwicklerwerkzeugen (Reiter „Elemente“) mit der Maus über das Element: Der Browser färbt Inhalt, Innenabstand, Rahmen und Außenabstand ein und zeigt die Maße.
  3. Füge box-sizing: border-box; hinzu. Wie breit ist die Box jetzt, und wie viel Platz belegt sie?

Kontrolle: Ohne border-box sind es 350 px und 370 px, mit border-box 300 px und 320 px.

Übungsaufgaben

Die Aufgaben 3 bis 6 sind der Kern und dauern zusammen etwa 45 Minuten. Du arbeitest wieder an deiner Projektseite. Sage bei jeder Aufgabe zuerst voraus, was passiert, und prüfe es dann. Wer früher fertig ist, macht die Bonusaufgaben.

Aufgabe 3 – Tourenkarten für die Projektseite

Zeit: ca. 12 Minuten

Auf deiner Projektseite sollen drei Touren als Karten erscheinen. Alle Farben schreibst du ab jetzt als HEX-Wert (#rrggbb) oder hsl(), keine Farbnamen mehr.

Ergänze in index.html (zum Beispiel unter deiner Einleitung):

<h2>Unsere Touren</h2>
<div class="tour">
  <h3>Bergsee-Runde</h3>
  <p>Gehzeit: 2 Stunden</p>
  <p>Schwierigkeit: leicht</p>
</div>
<div class="tour schwer">
  <h3>Gipfeltour</h3>
  <p>Gehzeit: 5 Stunden</p>
  <p>Schwierigkeit: schwer</p>
</div>
<div class="tour">
  <h3>Klamm-Wanderung</h3>
  <p>Gehzeit: 1 Stunde</p>
  <p>Schwierigkeit: mittel</p>
</div>
  1. Gestalte .tour in style.css: Hintergrundfarbe als HEX-Wert, Rahmen 2px solid in einer dunkleren Farbe, abgerundete Ecken (border-radius), Innenabstand 16 px und 20 px Außenabstand nach unten.
  2. Die schwere Tour soll auffallen. Gib ihr über eine zweite Klasse schwer einen dicken roten linken Rahmen (border-left: 8px solid crimson;).
  3. Verschiebe die Regel .schwer über die Regel .tour. Sage voraus, was mit dem linken Rand passiert, prüfe es und erkläre es in einem Satz.

Kontrolle: Drei Karten mit Abstand untereinander, nur die mittlere hat links einen dicken roten Rand. Steht .schwer über .tour, sieht der linke Rand wieder aus wie die anderen, weil .tour später kommt und bei gleichem Rang gewinnt.

Steht .schwer über .tour, überschreibt .tour (border: 2px solid ...) den linken Rand wieder. Beide Selektoren sind Klassen und haben denselben Rang, deshalb entscheidet die Reihenfolge. Die vollständige Datei steht unter Aufgabe 6.

Aufgabe 4 – Abstände ohne Überraschung

Zeit: ca. 8 Minuten

Zwischen zwei Absätzen ist margin-bottom: 30px und margin-top: 20px eingestellt. Sage voraus, wie groß der Abstand zwischen den Absätzen ist.

abstaende.html (Inhalt des body):

<p class="oben">Absatz oben</p>
<p class="unten">Absatz unten</p>
  1. Schreibe deine Vorhersage auf: 20 px, 30 px oder 50 px? Gib beiden Absätzen eine Hintergrundfarbe, damit du die Lücke siehst, und prüfe die Vorhersage. Miss den Abstand mit den Entwicklerwerkzeugen.
  2. Stelle margin-top des unteren Absatzes auf 40 px. Sage voraus, wie groß der Abstand jetzt ist, und prüfe es.
  3. Gib beiden Absätzen zusätzlich padding: 10px;. Wird dadurch der Abstand zwischen den farbigen Flächen größer, kleiner oder bleibt er gleich?

Kontrolle: Erst 30 px, dann 40 px: Die beiden Außenabstände werden nicht addiert, es gilt der größere. Das padding macht die Flächen höher, der Abstand dazwischen bleibt.

Aufgabe 5 – Das Gerüst der Projektseite

Zeit: ca. 15 Minuten

Deine Projektseite hat bisher header, main, einen Abschnitt section und footer. Jetzt bekommen diese Bereiche Farben und Abstände.

  1. Lege am Anfang von style.css die Regel * { box-sizing: border-box; } an.
  2. header: dunkle Hintergrundfarbe als HEX-Wert, weiße Schrift, padding: 20px;, Text zentriert.
  3. Am Rand der Seite siehst du einen weißen Streifen. Finde mit den Entwicklerwerkzeugen heraus, woher er kommt, und entferne ihn.
  4. main bekommt 20 px Innenabstand. Der section mit den Quellen bekommt oben eine Linie (border-top) und darüber 20 px Außenabstand.
  5. footer: hellere Hintergrundfarbe, border-top, 15 px Innenabstand, Text zentriert.
  6. Die Links in nav bekommen weiße Schrift, keine Unterstreichung und padding: 0 12px;, damit sie nicht aneinander kleben.

Tipp: Der weiße Streifen ist der Standard-Außenabstand von body (8 px). Mit margin: 0 am body verschwindet er.

Kontrolle: Der Kopfbereich geht bis an den Rand des Fensters. Es gibt keinen weißen Streifen mehr, und die Navigationslinks haben sichtbar Platz zueinander.

Die weiße Kante ist der Standard-Außenabstand des body von 8 px. Die vollständige Datei steht unter Aufgabe 6.

Aufgabe 6 – Eine Palette aus einem Farbton

Zeit: ca. 10 Minuten

Gute Farbpaletten bestehen aus einem Farbton in verschiedenen Helligkeiten. Mit hsl(farbton, sättigung, helligkeit) geht das besonders einfach: Du änderst nur die dritte Zahl.

  1. Ersetze alle Farben in style.css durch hsl()-Werte mit demselben Farbton, zum Beispiel 210 (Blau): Kopfbereich Helligkeit 25 %, Rahmen und Linien 45 %, Tourenkarten 92 %, Seitenhintergrund 97 %. Sättigung 50 %.
  2. Die Textfarbe der Seite ist ein sehr dunkles hsl(210, 30%, 15%).
  3. Schreibe einen Kommentar, in dem steht, wie man die ganze Seite grün macht. Probiere es aus: Ändere in allen Werten nur den Farbton, zum Beispiel auf 140.
  4. Bleibt der Text überall gut lesbar? Prüfe vor allem die weiße Schrift im Kopfbereich.

Kontrolle: Die Seite ist komplett blau, nach der Änderung der ersten Zahl komplett grün. Kein HEX-Wert und kein Farbname ist übrig.

Fertige Fassung der style.css mit Farbton 210. Für Grün ersetzt du überall 210 durch 140.

Bonus für Schnelle

Bonusaufgabe 1 – Durchsichtig: rgba oder opacity?

Es gibt zwei Wege, etwas durchsichtig zu machen, und sie verhalten sich unterschiedlich. rgba(r, g, b, a) ist wie rgb(), hat aber einen vierten Wert für die Deckkraft (0 bis 1). opacity gilt für das ganze Element.

Lege bonus-transparenz.html an: ein div mit dunkelgrünem Hintergrund, goldenem Rahmen und 40 px Innenabstand, darin ein Absatz mit großer Schrift (28 px) und 16 px Innenabstand.

  1. Gib dem Absatz background-color: rgba(255, 255, 255, 0.6);. Sage voraus, ob der Text ebenfalls durchsichtig wird, und prüfe es.
  2. Ersetze die Regel durch background-color: white; und opacity: 0.6;. Was ist jetzt anders?
  3. Formuliere in einem Satz, wann du welche Variante nimmst.

Kontrolle: Mit rgba bleibt der Text schwarz und gut lesbar, nur der Hintergrund ist durchsichtig. Mit opacity wird auch der Text blass.

rgba für durchscheinende Hintergründe, opacity nur, wenn das ganze Element samt Inhalt verblassen soll.

Bonusaufgabe 2 – Ein rundes Abzeichen

Mit border-radius: 50% wird aus einem Quadrat ein Kreis. Daraus baust du ein Abzeichen für eine Wandertour.

  1. Lege bonus-abzeichen.html an: ein div mit 120 px Breite und Höhe, box-sizing: border-box, Hintergrund dunkelgrün, weiße zentrierte Schrift (24 px) und dem Text „1000 m“.
  2. Mache einen Kreis daraus und gib ihm einen goldenen Rahmen 8px double gold.
  3. Der Text klebt oben im Kreis. Rücke ihn mit padding-top in die Mitte. Rechne vorher, welcher Wert ungefähr passt.

Kontrolle: Ein Kreis mit doppelter goldener Linie, der Text liegt etwa in der Mitte. Mit border-radius: 20px würde daraus ein Quadrat mit runden Ecken.

Kurz zusammengefasst:
  • Farben schreibst du als Name, #rrggbb (HEX), rgb(r, g, b) oder hsl(farbton, sättigung, helligkeit). color färbt den Text, background-color den Hintergrund.
  • border: 2px solid farbe; besteht aus Breite, Linienart und Farbe. Ohne Linienart gibt es keinen Rahmen. border-radius rundet die Ecken.
  • padding ist der Abstand innen (zwischen Inhalt und Rahmen), margin der Abstand außen. Bei der Kurzschreibweise gehen die Werte im Uhrzeigersinn: oben, rechts, unten, links.
  • Eine Box besteht von innen nach außen aus Inhalt, padding, border und margin. Mit box-sizing: border-box zählt width bis zur Außenkante des Rahmens.
  • Senkrechte Außenabstände zweier Blöcke addieren sich nicht, es gilt der größere. Der body hat standardmäßig 8 px margin.