| Diese Webseite soll einen kurzen Überblick über die Regeln von CSS verschaffen. | Sie ist jedoch kein Ersatz für ein CSS-Handbuch ! |
CSS
|
Cascading StyleSheets |
| HTML | Einige HTML-(DOM)-Definitionen |
| CSS-Begriffe | style, Regel, Klasse, ... |
| style= " " | Formatierung einzelner Knoten mit dem style-Attribut |
| <style></style> | Formatierung von Knoten einzelner Webseiten mit dem <style>-Block |
| Stylesheet | Formatierung ganzer Webs mit Stylesheet-Dateien |
| CSS-Klassen | Namen für ganze Regel-Sammlungen: HTML-, eigene, id-Klassen, ... |
| Zahlen | Numerische Angaben in CSS |
| style-Objekt | Javascript verwendet das style-Objekt und seine Eigenschaften |
| Links |
|
Begriffe zum Thema HTML & DOM |
|
|
Webseite:
►
Ein Objekt, das nach den Regeln des "Document Object Model"
(→ DOM)
in Form eines hierarchischen Baums in Unter-Objekte gegliedert ist.► Eine HTML-Webseite enthält normalerweise genau diese beiden Unter-Objekte (Tochter-Knoten, childNodes ): <head> und <body> |
<html>
<head> ... </head>
</html>
<body> ... </body> |
|
Knoten-Element (node) ► Der Inhalt einer HTML-Webseite wird aus untergeordneten Objekten (Elementen, Knoten, nodes) aufgebaut. HTML Knoten-Elemente sind im Quelltext (source) durch symmetrische "tags" wie z.B. <body>...</body> begrenzt. ► Zwischen dem Anfangs-tag und dem End-tag eines Elements können untergeordnete Elemente (childNodes) eingefügt sein. Diese können aus Text bestehen (Text-Knoten), oder aus beliebigen anderen HTML-Elementen. ► Jeder childNode kann selbst eigene untergeordnete Elemente enthalten. ► Lediglich Text-Knoten können keine childNodes enthalten, sie stellen daher die Endpunkte der Zweige des Objekt-Baums dar. |
Das <span>-Element dieses Beispiels enthält
genau einen childNode (einen Text-Knoten):
<span>Das ist ein Textknoten</span>
Das <div>-Element des folgenden Beispiels enthält zwei childNodes (<span>-Elemente). Jeder der childNodes enthält selbst einen weiteren childNode (Text-Knoten):
<div>
<span>ein Textknoten</span>
</div>
<span>ein anderer Textknoten</span> |
|
Attribute:
Um die Objekte näher zu beschreiben, kann das Start-tag jedes Elements
Attribute enthalten.► Attribute werden als Text in der Form Name="Wert" eingetragen. Sie werden voneinander durch Leerzeichen getrennt. Die Reichweite jedes Attributs erstreckt sich bis zum Abschluss-tag des Knotens. ► Die beiden Attribute class und style dienen zur Anwendung von CSS-Regeln auf HTML-Elemente. |
<div style="color:blue;">
Anwendung eines style-Attributs |
|
Kommentare
HTML erlaubt beliebig lange Kommentare, die bei der Verarbeitung ignoriert werden.CSS erlaubt ebenfalls Kommentare. Diese sind jedoch nur innerhalb von CSS-Code zulässig. |
<!-- HTML-Kommentar -->
<style type="text/css">
/* CSS-Kommentar */
</style> |
|
Die strengeren Regeln von
→ XHTML schreiben u.a. vor: ● Die Namen von Elementen und Attributen dürfen nur in Kleinbuchstaben gesetzt werden. <BODY> oder <Body> ist durch <body> zu ersetzen. ● Die Werte von Attributen müssen immer in "" gesetzt werden. Attribute in der Form Name=Wert sind unzulässig. |
♣ Tipp: Es ist sehr empfehlenswert, bei jeder Änderung oder neuen Entwicklung von Webseiten nach Möglichkeit die strengen → XHTML-Regeln zu beachten. In diesem Fall können sie bei Bedarf jederzeit auf XHTML umsteigen. Andernfalls wird der Umstieg langwierig und teuer. |
Einige CSS-Begriffe: |
|
|
CSS-Regel (rule): ■ Jede Regel besteht aus einem Text der Form name:wert;
■
Der Name bezeichnet eine CSS-Eigenschaft, d.h. eine der Eigenschaften
des style-Objekts. Eine Liste der CSS-Eigenschaften und ihrer
möglichen Werte finden sie in der Definition der aktuellen CSS-Version.■ Name und Wert sind durch : (colon) voneinander getrennt. |
Einzelne CSS-Regel in der Form name:wert; color:red;
Die Regel dieses Beispiels setzt die (Vordergrund)-Farbe eines Objekts auf den
Wert red, d.h. auf die Farbe 'Rot'.
|
|
CSS-Klasse (class): ■ Beliebig viele CSS-Regeln können zu einer CSS-Klasse zusammengefasst werden. ■ Die Definition beginnt mit dem Klassen-Namen, gefolgt von der Liste der Regeln in {} Die einzelnen Regeln werden durch ; Strichpunkte getrennt. Im Text enthaltene Leerzeichen, Tabulatoren oder Zeilen-Umbrüche werden ignoriert. ■ Wenn der Name einer CSS-Klasse jenem eines HTML-Elements entspricht, dann werden alle betreffenden HTML-Elemente nach den hier festgelegten Regeln formatiert. |
Beispiel einer CSS-Klasse aus 2 Regeln:
p {color:blue; font-weight:bold;}
Diese Regel wird auf alle nachfolgenden Absätze
(HTML-Elemente <p>...</p>) angewendet.Analog lassen sich CSS-Klassen für alle HTML-Elemente angeben, z.B. für <body> body {font-size:10pt; margin:2cm;}
|
|
Mit CSS lassen sich auch eigene (allgemeine) Klassen erstellen. Das Beispiel rechts definiert eine CSS-Klasse mit dem selbst definierten Namen bi Beachten sie den obligatorischen Punkt vor dem Klassen-Namen ! Die weiteren Kapitel demonstrieren die Anwendung eigener CSS-Klassen. ♣ Tipp: Definieren sie keine leeren CSS-Klassen (d.h. Klassen ohne Regeln - Das macht bei manchen Browsern Probleme). |
Beispiel einer allgemeinen CSS-Klasse:
.bi{font-weight:bold; font-style:italic;}
Diese Klasse kann mit Hilfe eines class-Atributs auf jedes
beliebige HTML-Element angewendet werden.
|
|
CSS StyleSheet:
■
Beliebig viele CSS-Klassen können zu einem Stylesheet zusammengefasst werden.
Ein Stylesheet ist ein Block von Text, der nach CSS-Syntax zusammengestellt ist.■ Ein Dokument (z.B: HTML-Webseite) kann beliebig viele Stylesheets enthalten. Später eingetragene Regeln überschreiben dabei frühere. ■ Stylesheets können in Webseiten als <style>..</style>-Elemente enthalten sein. ■ Alternativ kann der CSS-Code von Stylesheets in externe Dateien *.css ausgelagert werden. In diesem Fall werden die (externen) Stylesheets mit <link>-Elementen in die Webseite eingebunden. Beide Varianten wirken ohne Unterschied. ■ Das Beispiel rechts enthält 2 Stylesheets, je eines als <style>-Element und als <link>-Element. ♣ Der Begriff 'Stylesheet' wird in der Literatur und im Internet leider uneinheitlich und missverständlich verwendet. Zur besseren Unterscheidung werden in diesem Web die Begriffe 'externe Stylesheet-Datei' und 'style-Element' bevorzugt. ♦ Details zur Programmierung des Style-Objekts mit Javascript |
Beispiel für eine HTML-Webseite mit 2 Stylesheets:
<head>
. . .
</head>
<link rel=stylesheet type="text/css" href="extern.css" /> <style type="text/css">
body {background-color:#CCC;} .mytitel {font-size:14pt;} . . . |
|
Kommentare:
CSS erlaubt beliebig lange Kommentare der rechts gezeigten Form.Kommentare werden ignoriert. |
/* ... CSS-Kommentar ... */
|
Externe Stylesheet-Dateien zur CSS-Formatierung ganzer Webs |
|
|
►
In einer externen Stylesheet-Datei (*.css) werden beliebig viele
CSS-Klassen zusammengefasst. ► Eine Webseite wird mit einem <link>-Element mit einer Stylesheet-Datei verknüpft. Das <link>-Element ist im <head> angeordnet - Sinnvoll ist die Verknüpfung einer Stylesheet-Datei mit möglichst vielen oder allen Seiten eines Webs. ► <link>-Elemente zur Verknüpfung mit externen Stylesheet-Dateien sollten immer vor den <style>-Elementen angeordnet sein. So können die allgemeinen Regeln der Stylesheet-Datei durch spezielle Regeln für bestimmte Webseiten ergänzt oder ersetzt werden. |
/* Muster für eine CSS-Datei demo.css */
body {color:blue;}.b {font-weight:bold;} Einbindung der externen Stylesheet-Datei in eine Webseite:
<head>
... <link rel="stylesheet" href="demo.css" /> <style>...</style> </head> |
| ► Die Dateinamen von StyleSheet-Dateien sollten die Endung css enthalten. Verwenden sie in den Namen nur Kleinbuchstaben, keine Umlaute oder Sonderzeichen. Damit vermeiden sie Probleme beim upload auf unbekannte Webserver. |
►
Jede Webseite kann mit mehreren Stylesheet-Dateien verknüpft werden.
Beachten sie die Reihenfolge: Allgemeine Regeln werden immer vor speziellen Regeln geladen. ► Stylesheets müssen nicht im eigenen Web vorliegen, sie können auch via Internet aus anderen Webs bezogen werden. |
| Die Anwendung der definierten Klassen ist unabhängig von der Art der Definition, d.h. genau gleich wie bei einem <style>-Element. |
Die <span class="t2">Klasse</span> t2.
|
|
Damit können sie die Gestalt einer großen Zahl von Webseiten in kürzester Zeit ändern. Mit Server-seitigen Programmiersprachen (PHP, Perl, ...) können sie StyleSheets auch dynamisch (Live, nach Bedarf) programmieren ! |
|
CSS-Klassen |
|
|
■
Jede Definition einer CSS-Klasse besteht aus dem Klassen-Namen
und beliebig vielen CSS-Regeln in {} ■ In der Definition enthaltene Leerzeichen, Tabs oder Returns werden ignoriert. ■ CSS-Klassen können nur in styleSheets definiert werden, das sind entweder <style>- oder <link>-Elemente. ■ Jede CSS-Klasse erzeugt entspricht einem → style-Objekt. |
/* Definition der Klasse "rotschrift" */
.rotschrift {color:red;}
|
|
HTML-Klassen:
■
Jedem HTML-Element ist eine CSS-Klasse gleichen Namens zugeordnet, deren (Standard)-Regeln
dem Browser bekannt sind.■ Sie können diese Standard-Regeln selbst ändern oder ergänzen. Beispiel: Hier wird die CSS-Klasse p geändert. Damit werden alle Absätze <p>..</p> der Webseite so formatiert: Falls sie diese CSS-Definition in einer styleSheet-Datei verwenden, so wirkt sie sich auf alle Absätze aller betroffen Webseiten aus. |
/* Formatierung der HTML-Klasse "p" */
p {background-color:#F0F0F0;}
<!-- HTML-Anwendung -->
<p>Ein Absatz</p>
<div>Keine Änderung</div> <p>Ein anderer Absatz</p> |
|
Eigene CSS-Klassen:
■
Die Namen beginnen mit einem Punkt (period). In diesem Fall werden all jene HTML-Elemente
danach formatiert, welche als class-Attribut den Namen der Klasse
(ohne Punkt) tragen.Beispiel: Damit werden alle Elemente mit dem Attribut class="t1" formatiert. In diesem Web werden z.B. folgende eigene Klassen verwendet: Inhaltsangabe-Tabelle, Überschrift, Untertitel, Quelltext allgemein oder HTML oder CSS .. |
/* Formatierung der User-Klasse "t1" */
.t1{color:#FF0000;}
<div class="t1">Testbereich</div>
Das <span class="t1">ist ein</span> Muster. |
|
An das id-Attribut gebundene Klassen:
Die Namen der CSS-Klassen beginnen mit einem #-Zeichen.
Die Definition wird auf das Element mit dem gleichnamigen id-Attribut
angewendet.Beachten sie, dass id-Attribute stets eindeutig sein sollen, d.h. sie können mit solchen Klassen immer nur genau ein HTML-Element pro Webseite formatieren. |
/* Formatierung der User-Klasse "t1" */
#t3 {color:#0000FF;}
Bindung <span id="t3"> an das
</span> id-Attribut.
|
Numerische Angaben in CSS |
|
| Die Definition einiger Parameter (Größe, Abstand, ...) erfordert Zahlenwerte. Diese können in CSS in verschiedenen Einheiten absolut oder relativ festgelegt werden. Einige davon werden hier erwähnt. | |
|
Absolute Zahlen:
pt (Punkt, point) .. Schriftgröße
( 1 pt = 1/72 inch = 25,4 / 72 mm )mm (Millimeter ) cm (Zentimeter) px (Pixel) ... Bildpunkte am Ausgabe-Medium Demonstration: → Live-Eichung der CSS-Längeneinheiten am Monitor |
font-size:12pt;
margin:15mm; width:10cm; border-width:3px; |
|
Relative Zahlen:
% (Prozent) ... Relative Angabe. Je nach CSS-Eigenschaft relativ zum eigenen Element,
zum Eltern-(parent)-Element oder zum jeweiligen Kontext.
|
width:80%; |
|
Farben hexadezimal:
#RRGGBB ... Nach dem #-Zeichen 3 Hexadezimalzahlen,
je 00..FF für Rot, Grün und Blau.Demonstration: → Additive Mischung von Farben |
color:#FFFFFF; /* white */
border-color:#000000; /* black */ background-color:#FF0000; /* red */ |
|
Farben dezimal:
rgb(rd,gd,bd) ... In ( ) 3 Dezimalzahlen,
je 0..255 für Rot, Grün und Blau
|
background-color:rgb(255,0,0); /* red */
|
|
Farben relativ:
rgb(r%,g%,b%) ... In ( ) 3 Prozentzahlen,
je 0..100% für Rot, Grün und Blau
|
color:rgb(50%,50%,50%); /* grey 50% */
|
|
Farben nach Namen Demonstration: → Namen von Farben |
border-color:fuchsia;
|
Das style-Objekt und seine Eigenschaften |
|
| Das style-Attribut ist ein komplexer Text und daher für den Zugriff mit Standard → DOM-Methoden nicht gut geeignet. |
An seiner Stelle verwenden sie die
Objekte styleSheet
und style
und deren zahlreiche Eigenschaften. Jeder DOM-Knoten enthält das style-Objekt als Unterobjekt. |
| ♦ Details zum Zugriff auf CSS-Eigenschaften mit Javascript in den Kapiteln styleSheet und style | |
|