Inhaltsverzeichnis
Textformatierung & Selektoren in CSS
Diese Dokumentation behandelt die CSS-Eigenschaften zur Textgestaltung, Zeilen- und Listensteuerung sowie erweiterte Selektortypen und die Spezifitätsberechnung basierend auf den Schulungsunterlagen[cite: 13].
1. Typografie & Schrifteigenschaften
Da Schriftarten auf dem Gerät des Benutzers vorhanden sein müssen, werden Schriftfamilien als Ausweichkette (Fallback-Liste) angegeben[cite: 13].
Schriftarten (font-family)
Der Browser verwendet die erste verfügbare Schriftart der Liste[cite: 13]. Am Ende sollte immer eine generische Schriftfamilie stehen[cite: 13]:
- Generische Familien:
serif,sans-serif,monospace,cursive,fantasy[cite: 13]. - Schriftnamen mit Leerzeichen müssen in Anführungszeichen gesetzt werden[cite: 13].
p { font-family: "Duru Sans", Verdana, sans-serif; }
Weitere Schrifteigenschaften
- font-size: Steuerung der Textgröße mittels Einheiten (z. B.
rem,em,px) oder Schlüsselwörtern[cite: 13]. - font-weight: Schriftstärke (z. B.
normal,boldoder Werte von100bis900)[cite: 13]. - font-style: Schriftschrägung (
normal,italic,oblique)[cite: 13]. - font-variant: Z. B.
small-capsfür echte Kapitälchen[cite: 13]. - font-stretch: Stauchung oder Dehnung der Schriftart (z. B.
condensed,expanded)[cite: 13].
Kurzschreibweise (font)
Kombiniert mehrere Schrifteigenschaften in einer Zeile. Mindestens font-size und font-family müssen angegeben werden[cite: 13]:
/* Format: font: style weight stretch variant size/line-height font-family */ h3 { font: oblique bold small-caps 1.5em Verdana, sans-serif; }
2. Textzeilen & Ausrichtung
Zeilen- & Textabstände
- line-height: Mindestabstand von Grundlinie zu Grundlinie (Baseline)[cite: 13].
- text-indent: Einrücken der ersten Textzeile (z. B.
2em,25%,-35px)[cite: 13]. - letter-spacing / word-spacing: Zeichen- und Wortabstände anpassen[cite: 13].
Textausrichtung & Dekoration
- text-align: Horizontale Ausrichtung (
left,right,center,justify,start,end)[cite: 13]. - text-decoration: Textverzierungen (
none,underline,overline,line-through,blink)[cite: 13]. - text-transform: Groß-/Kleinschreibung anpassen (
capitalize,lowercase,uppercase,none)[cite: 13]. - text-shadow: Textschatten definieren (Format:
Offset-X Offset-Y Unschärfe Farbe)[cite: 13].
h1 { text-shadow: 0.2em 0.2em 0.1em silver; }
3. Listenstilisierung
Zur Gestaltung von Listen dienen drei zentrale Eigenschaften[cite: 13]:
- list-style-type: Typ des Aufzählungszeichens (z. B.
disc,circle,square,decimal,lower-roman,lower-greek)[cite: 13]. - list-style-position: Position der Markierung relativ zum Textfeld (
outside[Standard] oderinside)[cite: 13]. - list-style-image: Verwenden einer eigenen Grafik als Aufzählungszeichen (z. B.
url('/images/bullet.png'))[cite: 13].
4. Erweitere Selektoren
Neben einfachen Element-Selektoren bietet CSS erweiterte Typen zur gezielten Ansprache[cite: 13]:
- Nachkommenselektor (Descendant): Spricht Elemente an, die sich innerhalb eines bestimmten Eltern-Elements befinden (getrennt durch Leerzeichen)[cite: 13].
ol a { font-weight: bold; } /* Nur Links innerhalb nummerierter Listen */
- ID-Selektor: Spricht ein spezifisches Element über dessen eindeutige
idan (gekennzeichnet durch#)[cite: 13].
#primary { color: olive; }
- Klassenselektor: Spricht Elemente mit einem bestimmten
class-Attribut an (gekennzeichnet durch.)[cite: 13].
.hilight { background-color: yellow; }
- Universalselektor: Spricht jedes beliebige Element an (gekennzeichnet durch
*)[cite: 13].
* { border: 1px solid gray; }
5. Berechnung der Spezifität
Die Spezifität bestimmt, welcher Selektor bei Konflikten Vorrang hat[cite: 13]. Sie wird über ein Drei-Klassen-System berechnet[cite: 13]:
| Rang / Position | Selektortyp |
|---|---|
| Feld 1 (Höchste Priorität) | Anzahl der ID-Selektoren[cite: 13] |
| Feld 2 (Mittlere Priorität) | Anzahl der Klassen- und Pseudoklassenselektoren[cite: 13] |
| Feld 3 (Niedrigste Priorität) | Anzahl der Element-Selektoren[cite: 13] |
<note important>
Inline-Stile über das style-Attribut haben grundsätzlich eine höhere Spezifität als alle Selektoren im Stylesheet[cite: 13].
</note>
Beispiel-Vergleich
h1$ \rightarrow $ [0] [0] [1] (1 Element)[cite: 13]blockquote p$ \rightarrow $ [0] [0] [2] (2 Elemente)[cite: 13]h1.special$ \rightarrow $ [0] [1] [1] (1 Klasse, 1 Element)[cite: 13]
Das erste Feld von links, bei dem kein Unentschieden herrscht, entscheidet[cite: 13]. Ein einzelner Klassenselektor [0][1][1] schlägt somit beliebig viele reine Elementselektoren wie [0][0][2][cite: 13].