Cascading Style Sheets - Tutorial für WebDesigner und WebDesignerinnen


Letzte Änderung am 21.01.2005
Cascading Style Sheets - ein Tutorial
Vorbemerkung: Die Kapiteleinteilung hält sich an das Buch von Eric A. Meyer: Cascading Style Sheets, The Definitive Guide, O'REILLY, 2004.
Es soll eine sinnvolle Adaptation der W3C-Regeln zu CSS1, 2 und 2.1.aus der Perspektive von Lernenden sein. Die eingefügten Demos lassen sich-fast ohne Ausnahme-im Quelltext editieren und ansehen. Der Code ist so einfach wie möglich gehalten und das Tutorial kann auch offline benutzt werden. CSS-Bereiche, die in den gängigen Browsern bisher nicht implementiert wurden, werden nicht dokumentiert.
Andreas Lutz MatteDesign, Bern

Kapitelübersicht

Kapitel 9: Farben und Hintergründe

Vordergrundfarben (color)

color
Values: <color> | inherit
Ausgangswert: browserabhängig
Anwendbar auf: alle Elemente
Vererbung: Ja
Computed Value: S. Values

Kapitel 4: Umfangreiche Darstellung der Farbmasse

Farb-Definitionen sind eigentlich unproblematisch,
wenn einige Faustregeln beachtet werden. So ist es allemal besser, wenn die Color-Angaben in Klassen vordefiniert werden. Da jedes Element, auch Formularelemente die verschiedenen Farben annehmen können, ist es wichtig, sich mit dem Farbkonzept einer Website auseinanderzusetzen. Eine ausgezeichnete Einführung zur Farbtheorie und Farbpsychologie liefert Hartmut Rudolf mit seinem Tutorial und kostengünstigen "Farbwähler".
Auch bei Bildern kann color für die Definition der Rahmenfarbe in CSS eingesetzt werden.
Bei ersetzten Elementen wie Links, Bildern und Formular-Elementen gibt es einige Regeln zu beachten die aufgrund der durchgehenden Vererbung von color eine Rolle spielen.
Die vorgegebenen Farbnamen in CSS und HTML betreffen nur "reine" Farben, die grundsätzlich aus nur zwei Farbwerten gebildet werden. (Ausnahme ist: silver und natürlich withe und black, die gemeinhin nicht als Farben gelten...). Deshalb müssen subtilere Farbtöne mit RGB- oder Hexwerten gesetzt werden.

Hintergrundfarben (background-color)

background-color
Values: <color> | transparent | inherit
Anfangswert: transparent
Anwendbar auf: Alle Elemente
Vererbung: nein
Computereingabe: S. Values

Demo 1

Beispiel: background-color: #ff8000; (Massangaben wie bei color)
Backgrounds reichen bekanntlich seit CSS2.1 genau bis zur äussersten Ecke des Border-Elementes und umschliessen natürlich Padding.
Der Default-Welt ist transparent, was Sinn macht. Ungesetzte Hintergrundfarben sind transparent und erlauben der gesetzten Hintergrundfarbe von Eltern-Elementen Sichtbarkeit. So scheint der Hintergrund des definierten Backgrounds durch alle Elemente hindurch, die keine Definition haben. Mit background-color und color sind eine ganze Menge interessanter Kombinationen möglich.

Hintergrundbilder (background-image)

background-image
Values: <uri> | none | inherit
Anfangswert: none
Anwendbar auf: alle Elemente
Vererbung: nein
Computereingabe: absolute URI

Demo 2

Beispiel: background-image: url(./img/css.gif); Ohne Anführungszeichen für Pfad- und Bildname.
Es macht Sinn, ein Hintergrundbild mit einer Hintergrund-Farbe zu verbinden. (Dies vor allem, wenn die Alphatransparenz von Hintergrund-Bildern eingesetzt wird.). Hintergrund-Bilder werden nicht vererbt.
Achtung! Für die Darstellung des Bildes im Browser braucht es unbedingt eine Breiten- und Höhenangabe (width, height)!

Hintergrundbilder: Wiederholung (background-repeat)

background-repeat
Values: repeat | repeat-x | repeat-y | no-repeat | inherit
Anfangswert: no-repeat
Anwendbar auf: Alle Elemente
Vererbung: Nein
Computereingabe: S. values.

Beispiel: background-repeat:repeat-x; Horizontale Bildwiederholung (Kachelung) über eine Zeile hinweg.
Beispiel: background-repeat:repeat-x repeat-y; Horizontale und vertikale Kachelung, also das alte, gekachelte Background-Tag von HTML.
Zusammen mit der Positionierung lassen sich viele interessante Gestaltungseffekte erzielen.

Hintergrund-Bilder: Position (background-position)

Background-position Values: [[<percentage> |<length> | left |center | right] | [ ] | | top |center | bottom]?] || [[ left | center | right] || [top | center | bottom]] | inherit
Anfangswert: 0% 0%
Anwendbar auf: Block-Elemente und ersetzte Elemente
Vererbung: nein
Prozentangaben: Bezugspunkt der Prozentangaben
Computereingabe: absolutes Längenoffset, wenn length definiert ist, sonst Prozentangaben.

Demo 3

In CSS2 und CSS2.1. bezieht sich die Background-Image-Position auf die innere Ecke des Blocks, also auf den Content-Bereich, aber nur im ungekachelten Zustand, was eine Differenz zur Background-color darstellt. Gekachelt (repeat-x/y) füllt das Background-Image den gesamten Blockbereich aus! (inklusive margin, border und padding )
Die Keywords für die Positionierung beziehen sich auf die horizontale (erste Angabe) und vertikale Position (zweite Angabe) des Bildes im Element, in dem es aufgerufen wird.
Beispiel: background-position: top right Bedeutung: Oben-rechts
Beispiel: background-position: center center; Bedeutung: Genau in der Mitte des Elementes.
Keywords, die allein stehen sind ungepaarte Keywordangaben. Wenn nur ein Keyword verwendet wird, so gilt folgende (automatische )Positionierung: center ergibt: center,center
top ergibt: top center oder center top
bottom ergibt: bottom center oder center bottom
right ergibt: right center oder center right
left ergibt: left center oder center left.

Prozentwerte sind noch etwas komplexer:
Bei doppelten Angaben wie background-position: 50% 50%, wird das Bild sowohl im Element, wie auch als Bild selbst zentriert.
Dies ergibt folgende Bild- und Elementpositionen (Beispiel 9-23, p. 262)
background-position: 0% 0% : Oben links im Element Erste Angabe immer horizontal, zweite Angabe immer vertikal
50% 50%: Mittig in der Mitte des Elements
100% 100%: Genau rechts unten im Element
0% 100%: Genau rechts oben im Element
100% 0%: Links unten im Element
Was alles auch logisch ist.
Genau gleich verhält es sich mit den Length-Angaben, welche seit CSS2.1 auch mit Prozentangaben vermischt werden können.
Mit Negativwerten können Bilder auch ausserhalb des Elements positioniert werden.
Zusammen mit der Positionierung, kann nun auch die Repeat-Angabe des Bildes gesteuert werden. So kann ein zentriertes Bild (Position) mit der repeat-y-Angabe in der Mitte des Elements getilt (tiled = gekachelt) werden, was wiederum interessante Effekte erlaubt.

Demo 4

Subtiles, abgestimmtes Vordergrund-Hindergrund-Design gehört zu den Berufsgeheimnissen guter WebdesignerInnen. Es lassen sich damit ausserordentlich schöne grafische Effekte erzeugen

Demo 5

Hintergrundbilder: Wasserzeicheneffekt (background-attachment)

background-attachment
Values: scroll | fixed | inherit
Anfangswert: scroll
Anwendbar auf: Alle Elemente
Vererbung: nein
Computereingabe: wie Values

Demo 6

Beispiel: background-attachment: fixed; Wasserzeicheneffekt, fixiert die Bildposition im sichtbaren Bereich.
Leider hat MS Internet-Explorer bis heute die Fixierung der Position nicht für die Anwendbarkeit in allen Elementen implementiert und man kann den Effekt nur durch einen Trick erreichen. Position fixed wäre eine Alternative zu den Frames, welche scrollende und fixe Bereiche gleichzeitig ermöglichen.

Hintergrund (shorthand: background)

background
Values: [<background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position> ] | inherit
Anfangswert: individuelle Eigenschaften
Abwendbar auf: alle Elemente
Vererbung: nein
Prozentwerte: erlaubt für background-position
Computereingabe: S. individuelle Wertangaben

Beispiel: background: #80ff00 url(bild.gif) bottom left repeat-x;
Die Reihenfolge der Angaben spielt keine Rolle.

Weiter zu Kapitel 10: Floating und Positionierung