|
|
Cascading Style Sheets © Björn Höhrmann |
|
Copyright © September 2000, Björn Höhrmann bjoern@hoehrmann.de
Mit Cascading Style Sheets ist es möglich, die Präsentation einer Webseite zu beeinflussen, ohne ihre Struktur zu verändern. Nein, nicht wirklich. Die Aufgabe von HTML war es, Inhalte zu strukturieren, nicht sie zu formatieren. Mit HTML definiert man Überschriften, Absätze, Zitate, Listen oder wichtige Textstellen, nicht aber Schriftarten oder Farben. Es wurden aber in die Browser immer mehr neue Elemente zur visuellen Formatierung eingeführt, so das HTML Dokumente nur noch aus Inhalten und Präsentationselementen bestanden, Struktur findet man immer seltener. Mit XHTML 1.1 wird das vorbei sein, alle Elemente und Attribute zur visuellen Darstellung werden entfernt und in vielen zukünftigen Browsern auch nicht mehr funktionieren. Welche Vorteile bieten Cascading Style Sheets? Style Sheets ermöglichen es, Präsentation und Inhalt zu trennen. Die Dokumente werden dadurch übersichtlicher und kleiner, man benutzt wieder mehr Strukturelemente als Formatierungselemente. Es ist zum Beispiel möglich, für eine ganze Website ein einzelnes Style Sheet zu schreiben, daß für alle Seiten gilt. Das gibt der ganzen Site ein einheitliches Äußeres, die einzelnen Seiten werden schneller geladen, da die einzelnen Formatierungsangaben nicht immer neu geladen werden müssen. Wenn man Änderungen machen will, reicht es, das Style Sheet zu ändern, und schon sehen alle Seiten anders aus. Vor allem wenn man nicht alleine an einer Website arbeitet, ist das praktisch, da sich die Autoren einzelner Seiten nicht mit dem Aussehen der Seite auseinandersetzen müssen. Style Sheets bieten also:
Und das alles, ohne daß man sich Sorgen machen muß, daß ein Browser CSS nicht unterstützt, da die Inhalte auch ohne CSS problemlos dargestellt werden können. Erstmal gibt es drei verschiedene Arten von Style Sheets:
"cascading" heißt jetzt, daß diese Style Sheets in der genannten Reihenfolge auf ein Dokument angewandt werden. Angaben des Autoren überschreiben Angaben des Benutzers, die wiederum Angaben im Style Sheet des Browsers überschreiben. Ferner ist es für den Autoren auch möglich, zum Beispiel ein allgemeines Style Sheet in einem Dokument zu verlinken, und dann im einzelnen Dokument diese Angaben zu überschreiben oder auch nur ein einzelnes Element zu formatieren. Wie sieht so ein Style Sheet denn aus?Ganz simpel :-) Um Überschriften in einem HTML Dokument in blauer Farbe darzustellen kann man folgendes benutzen:
h1 { color: blue }
Diese Regel besteht aus zwei Teilen. Mit "h1" wird das Element ausgewählt, auf das man sich bezieht, den Teil nennt man "Selektor". Der nachstehende Teil ist die Deklaration. In der Deklarationen stehen eine oder mehrere Eigenschaften, denen Werte zugewiesen werden, in diesem Fall ist es die Eigenschaft "color" der der Wert "blue" zugewiesen wird. Man kann in jeder Regel natürlich mehrere Eigenschaften angeben:
h1 { color: blue;
background-color: silver; }
Damit der Browser mit dieser Regel auch was anfangen kann, muß man sie ins HTML Dokument einbinden. Dafür gibt es das style Element:
<style type="text/css">
h1 { color: blue;
background-color: silver; }
</style>
Das Element ist nur im head Element der HTML Datei erlaubt. Eine vollständige HTML Datei könnte so aussehen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Dokument Titel</title>
<style type="text/css">
h1 { color: blue;
background-color: silver; }
</style>
</head>
<body>
<h1>Die Überschrift ist blau</h1>
<p>Text</p>
</body>
</html>
Die Überschrift ist blauDie Überschrift wird jetzt in blauer Farbe auf silbernem Hintergrund dargestellt. Eine andere Möglichkeit ist, das Style Sheet in einer separaten Datei auszulagern und auf diese dann mit dem link Element zu verweisen: <head> <title>Titel</title> <link rel="stylesheet" href="stylesheet.css"> </head> Der Element Selektor ist natürlich nicht der einzige Selektor. Es ist in HTML zum Beispiel bei fast allen Elementen möglich, ein class Attribut zu definieren: <body> <h1>Überschrift 1</h1> <p>text</p> <h1 class="gruen">eine grüne Überschrift</h1> <p class="gruen">text</p> </body> Überschrift 1text eine grüne Überschrifttext Um die zweite Überschrift jetzt auszuwählen, benutzt man den Klassen Selektor: h1.gruen { color: green }
Möchte man, daß auch der zweite Absatz in grüner Farbe dargestellt wird, gibt man einfach kein bestimmtes Element an: .gruen { color: green }
Welche Eigenschaften kann man mit CSS beeinflussen? Zusammengefasst und verallgemeinert sind das:
CSS kann man mit jeder Form von strukturierten Dokumenten benutzen, so auch mit XML (Extensible Markup Language). XML ist stärker auf Style Sheets angewiesen, als HTML, da ein Browser die Bedeutung der Elemente kennt. Ein Beispiel XML Dokument könnte so aussehen: <?xml version="1.0" encoding="iso-8859-1"?> <artikel> <headline>Cascading Style Sheets</headline> <autor>Björn Höhrmann</autor> <zusammenfassung>Mit <wichtig>Cascading Style Sheets</wichtig> ist es möglich, die Präsentation einer Webseite zu beeinflussen, ohne ihre Struktur zu verändern.</zusammenfassung> </artikel> Ein Style Sheet für dieses Element muß erstmal festlegen, wie die einzelnen Elemente dargestellt werden sollen, ob es blocklevel Elemente sind wie P oder DIV in HTML, oder inline Elemente wie EM oder STRONG: artikel, headline, autor, zusammenfassung { display: block }
wichtig { display: inline }
Jetzt möchte man vielleicht noch ein paar weitere Angaben machen: headline { font-size: x-large }
autor { font-style: italic }
zusammenfassung { margin-top: 1em }
wichtig { font-weight: bold }
Um das Style Sheet jetzt mit der der XML Datei zu verbinden, gibt es die xml-stylesheet processing instruction: <?xml-stylesheet href="stylesheet.css" type="text/css"?> Das Dokument könnte jetzt zum Beispiel so aussehen: Cascading Style SheetsBjörn Höhrmann Mit | |
| [Diesen Eintrag erweitern] | |
| Nächste: |
|
| ||||||||||
| [Sitemap] |