vorheriges KapitelInhaltsverzeichnisStichwortverzeichnisFeedbacknächstes Kapitel


Tag 14

Stileigenschaften mit Cascading Style Sheets (CSS)

Die Trennung von Stileigenschaften und Inhalt ist ein grundlegendes Konzept bei XML. Stilanweisungen können XML-Dokumenten auf verschiedene Weise zugeordnet werden, um eine Darstellung im Browser zu ermöglichen. Eine Art und Weise besteht darin, Cascading Style Sheets mit Ihren XML-Dokumenten zu verbinden, eine Methode, die ursprünglich dazu gedacht war, die Präsentation bei HTML zu verbessern. Heute lernen Sie:

14.1 Stil und Inhalt

Eines der grundlegenden Ziele beim XML-Design ist die Trennung des Inhalts von allen Formen der Dokumentanzeige. Sie haben am 1. und 2. Tag gelernt, dass diese Trennung einer der charakteristischen Unterschiede zwischen XML und HTML ist. HTML vermischt Inhalt und Präsentation in der gleichen Auszeichnung. Das <H1>-Tag in HTML zum Beispiel identifiziert nicht nur Daten, die als Überschrift betrachtet werden, sondern weist den Browser auch an, die Daten in einer großen Schrift wiederzugeben. Genauso teilt das <I>-Tag bei HTML einem Browser mit, dass die Daten, die es auszeichnet, in Kursivschrift wiedergegeben werden sollen. Wie Sie wissen, besteht XML aus Auszeichnungen, die den Dateninhalt beschreiben, ohne darauf zu achten, wie sie in einem Browser, auf einer gedruckten Seite oder durch einen anderen Client wiedergegeben werden.

Ein Client ist eine Software, die die Zeichen in einem Dokument gemäß vorgegebener Regeln nach Datenzeichen und Auszeichnungen parst. Es werden verschiedene Clients in verschiedenen Geräten wie Computern, webfähigen Handys, Webbrowsern usw. implementiert.

Da Sie in XML Ihre eigenen Elementtypen erzeugen können, hat ein Client keinen eingebauten Anweisungssatz, der bestimmt, wie die Daten dieser Elemente angezeigt werden sollen. Wenn Sie Ihre XML-Daten mit einem Browser anzeigen wollen, müssen Sie Anzeigeanweisungen angeben, die der Browser für die Aufbereitung der Daten verwendet. Sie können dies auf zwei Arten tun: mit Cascading Style Sheets (CSS) und mit der XML Stylesheet Language (XSL). Heute untersuchen wir CSS, morgen werden Sie Gelegenheit erhalten, den XSL-Ansatz zu verwenden und damit zu vergleichen.

CSS und HTML

HTML war nicht ursprünglich als Sprache für die Ausgabe in Browsern gedacht, sondern für eine Auszeichnung von Daten, die auf eine Art und Weise erfolgte, dass mehrere Netzwerke und verschiedene Plattformen sie gemeinsam nutzen konnten. Seit den frühesten Neuauflagen wurden jedoch spezielle Tags eingefügt, die eine typografische Bedeutung haben, wie etwa <I> für Kursivschrift, <B> für Fettschrift, <BR> für Zeilenumbrüche usw. Obwohl diese speziellen Tags eingeschlossen wurden, war HTML niemals wirklich dazu in der Lage, die Anzeige der Daten zu kontrollieren. Vor der Entwicklung von CSS mussten Webdesigner unorthodoxe Methoden einsetzen, um einige Stileffekte zu erreichen. Um etwa den Anfang eines Absatzes in einer Webseite einzurücken, fügten viele Entwickler ein »unsichtbares gif-Bild«, ein so genanntes clearpixel ein; welches eine Bilddatei war, die die gewünschte horizontale Länge, aber eine Höhe von null Pixeln hatte. Das Bild war für diejenigen, die über die Seite browsten, nicht sichtbar, aber es erzwang, dass der Text unter Berücksichtigung der horizontalen Bildgröße nach rechts rückte.

Wenn Sie sich für weitere solcher Techniken interessieren, können Sie diese auf der Website »Stupid HTML Indent Tricks« unter http://www.jbarchuk. com/indent/ nachlesen.

Die Cascading Style Sheets entstanden als eine Methode, die eine robuste Formatierung für HTML-Seiten zulässt, ohne ständig Informationen in die Tags eingeben zu müssen. Stylesheets können mit einem einfachen Texteditor wie dem Windows-Editor Notepad geschrieben und mit der Dateierweiterung .css abgespeichert werden. Es stehen mehrere Versionen von CSS zur Verfügung. Das W3C hat einen Satz von Stilkonventionen definiert, der als Cascading Style Sheets Level 1 (CSS1) bekannt ist. CSS2, das auch vom W3C definiert wird, ist eine neuere Version, die viele Features enthält, die im Wesentlichen eine Übermenge von CSS1 darstellen. CSS3 wird gerade entwickelt, aber von Clients nur minimal unterstützt.

Eines der grundlegenden Features von CSS ist, dass die Stylesheets kaskadieren. Man kann Stileigenschaften innerhalb eines Dokuments, in einem Element oder in einem externen Dokument programmieren. Für eine vorgegebene Dokument-Instanz können aber auch alle drei Standorte Stileigenschaften enthalten. Diese Flexibilität beim Standort für den Style wird aus Gründen der Modularität und Design-Flexibilität zur Verfügung gestellt. Es gibt Regeln dafür, wie die verschiedenen Stileigenschaften untereinander zusammenspielen, und wenn sie in Konflikt miteinander geraten, überschreiben sie sich gegenseitig. Die vollständigen Regeln für das Überschreiben finden Sie unter http:// www.w3.org/TR/ REC-CSS1. Eine externe .css-Datei etwa (die Erweiterung wird einem CSS-Dokument angefügt) kann den Inhalt eines Elements als kursiv stilisieren. Im Dokument kann ein globaler Stil, der dieses Element umfasst, das Element auf Fettschrift setzen. Die Einstellung für Fettschrift überschreibt in dieser Kaskade die externe Einstellung auf Kursivschrift. Kurz gesagt, ein Inline-Stil auf Elementebene überschreibt jeden Stil, der global in einem Dokument gesetzt ist; dieser wiederum überschreibt alle Stile, die in einer externen CSS-Datei gesetzt sind. Heute werden Sie externe CSS- Dokumente erstellen, um XML-Instanzen zu stilisieren.

Wenn Sie bereits mit HTML im Web programmiert haben, kennen Sie CSS vielleicht schon. CSS für XML funktioniert genauso: es bietet eine Methode, den Stil für Elemente zu spezifizieren, um zu definieren, wie ein Client diese Elemente handhabt. Heute erzeugen Sie Cascading Style Sheets für XML-Dokumente und verbinden beide. Das ist eine Methode, um einen Browser anzuweisen, wie er jedes der Elemente in Ihrem XML- Dokument aufzubereiten hat.

Die Unterstützung von CSS bei Webbrowsern

Die Verwendung von Stylesheets zur unterschiedlichen Aufbereitung von Elementen ist eine rein clientseitige Implementierung. Es überrascht nicht, dass CSS von Browsern verschiedener Plattformen unterschiedlich unterstützt wird. Tabelle 14.1 fasst die Unterstützung verschiedener Browser-Implementierungen für CSS1 zusammen. Die Unterstützung für CSS2 und CSS3 variiert stärker und ist derzeit keine allgemein übliche Praxis. Sie können mehr über die Unterstützung für CSS2 und CSS3 unter http:// www.w3.org/Style/CSS erfahren.

Plattform

Browser

Versionen

Linux

Amaya

2.0, 2.1, 2.2, 2.3, 2.4, 3.0, 4.0, 4.1, 4.2, 4.3.2

Linux

Netscape Navigator

4.7, Mozilla, 6

Linux

Opera

4a, 5.0

Macintosh

ICab Internet Browser

2.5 (teilweise)

Macintosh

Microsoft Internet Explorer

3.0, 4.0, 5.0

Macintosh

Netscape Navigator

3.0 (teilweise), 4.06 (teilweise), 4.5, 4.74, 6

Unix

Amaya

2.0, 2.1, 2.2, 2.3, 2.4, 3.0, 4.0, 4.1, 4.2, 4.3.2

Unix

Arena

3

Unix

Microsoft Internet Explorer

4.01, 5.0

Unix

Netscape Navigator

4.6

Windows

Amaya

2.0, 2.1, 2.2, 2.3, 2.4, 3.0, 4.0, 4.1, 4.2, 4.3.2

Windows

Microsoft Internet Explorer

3.0, 4.0, 5.0, 5.5

Windows

Netscape Navigator

4.5, 4.7, 6

Windows

Opera

3.60, 4.02

Tabelle 14.1: Die Unterstützung für CSS durch Browser 

Da CSS recht breit unterstützt wird, wenn auch auf unterschiedliche Weise, können einige Browser ein XML-Dokument mit einem angefügten Stylesheet direkt öffnen. Die Methode des direkten Öffnens erfordert nicht, dass HTML die Daten aufbereitet. Jedoch hat diese Form der Verarbeitung ihren Preis. Da dieser Ansatz von einer ungleichen Browserunterstützung begleitet wird, können Sie nicht mit absoluter Sicherheit dafür garantieren, dass ein Anwender die Daten auf die Art und Weise sieht, die Sie beabsichtigen. Sie werden am 16. Tag verlässlichere Ansätze kennen lernen, XML-Daten darzustellen, wenn Sie die Extensible Language Transformations (XSLT) verwenden, und am 17. Tag, wenn Sie XML-Dateninseln auf HTML-Seiten einbauen.

CSS und XML

Bei XML - ebenso wie bei HTML - verbessert die Trennung von Stil und Inhalt die Flexibilität der Datenpräsentation am Ende und vereinfacht die Wartung. Die XML- Datenquelle muss nicht verändert werden, wenn das Aussehen der Datenpräsentation geändert werden soll; es genügt, einfach die verbundenen CSS anzupassen. Genauso können Sie nach dem Erstellen eines Stylesheets, der die Daten im erwünschten Stil präsentiert, neue XML-Dokumente hinzufügen, die mit dem gleichen CSS verbunden werden, wodurch die Beständigkeit der Präsentation auf einer Website sichergestellt wird.

Wenn Sie mehrere Stylesheets erstellen, können Sie ein System entwickeln, das einheitliche Daten an verschiedene Clients übermittelt. Stellen Sie sich zum Beispiel vor, Sie wollen die gleichen XML-Daten an alle Besucher Ihrer Website übermitteln, egal welcher Browser zum Zugriff auf Ihre Informationen verwendet wird. Sie können ein Script schreiben, das den Browser des Anwenders austestet und so einen passenden CSS bestimmen, der optimale Ausgaberesultate erzielt. Diese Technik ist als Browserschnüffeln bekannt und wird bei Websites häufig eingesetzt. Sie können den Client des Anwenders auf unterschiedliche Weise ermitteln, aber die einfachste Methode ist vielleicht, im JavaScript einfach nach der navigator.appName-Eigenschaft zu fragen. Ein einfaches Script, das diesen Ansatz verwendet, der beinahe überall auf einer HTML-Seite eingefügt werden kann, sieht so aus:

1: <script language="JavaScript">
2: <!--
3: document.write("Der ermittelte Browser ist " + navigator.appName);
4: // -->
5: </script>

Dieses einfache JavaScript gibt dem Bildschirm (document.write) über den Ausgabestrom einen zusammengefügten String zurück, der den Namen (navigator.appName) des Browsers einschließt, der das Script ausführt. Das setzt natürlich voraus, dass der Browser JavaScript unterstützt, eine zunehmend verlässlicher werdende Annahme im Web. Wenn der Browser kein JavaScript unterstützt, ignoriert er Zeile 3 vollständig wegen der charakteristischen HTML-Kommentare (<!-- -->), die um sie herum platziert sind (Zeilen 2 und 4).

Viele andere client- und serverseitigen Methoden können ermitteln, welche Art Client verwendet wird, um auf die Daten zuzugreifen. Wenn dies geschehen ist, kann ein passender Stylesheet verwendet werden, der sicherstellt, dass die angezeigten Daten so aussehen, wie Sie es wollen.

Das Konzept der mehrfachen Stylesheets, das verwendet wird, um ähnliche Daten für eine Reihe von Aufbereitungen zu präsentieren, ist für das Webdesign sehr wichtig. Mit dieser Herangehensweise erreichen Sie:

Morgen werden Sie ein einfaches Script erstellen, das einem Anwender gestattet, ein Extensible Stylesheet Language (XSL)-Stylesheet zu verwenden, um Daten auf unterschiedliche Arten anzuzeigen. Sie werden einige Ähnlichkeiten zwischen CSS und XSL feststellen können.

14.2 Die Erzeugung einfacher Stylesheets

Ein Cascading Style Sheet ist eine Textdatei, die normalerweise mit einer .css- Erweiterung gespeichert wird. Es kann mit einem einfachen Texteditor oder einem beliebigen Editor mit eingebauter CSS-Unterstützung erzeugt werden. Die Datei enthält Regeln, die die parsende Anwendung in einem Client anweisen, wie die Elementdaten angezeigt werden sollen. Die Regeln setzen sich aus Selektoren und Deklarationen zusammen, die die Anzeige der Daten definieren. Selektoren beziehen sich normalerweise auf einzelne XML-Elemente und die Deklarationen bestimmen, wie jedes ausgewählte Element angezeigt werden soll. Die Deklarationen enthalten Eigenschafts-/Werte-Paare. Jeder Eigenschaft wird ein definierter Wert zugewiesen, wie etwa Blockschrift, 10-pt- Schriftgröße oder Fettschrift. Die Syntax einer CSS-Regel ist die folgende:

Selektor    { eigenschaft:wert; eigenschaft:wert; ...}

Erzeugen Sie zunächst eine XML-Dokument-Instanz unter Verwendung des bekannten nachricht.xml-Szenarios der vergangenen beiden Wochen, das anschließend mit einer verbundenen CSS-Datei stilisiert wird. Da CSS Ihnen nur gestattet, Elemente mit Stileigenschaften zu belegen, nicht Attribute, müssen Sie eine XML-Instanz mit mehreren unterschiedlichen Elementen erzeugen, jedes mit Inhalt, die im aufbereiteten Resultat angezeigt werden soll. Erzeugen Sie eine XML-Dokument-Instanz, die so ähnlich aussieht wie die in Listing 14.1. Speichern Sie das Dokument unter nachricht01_14.xml. Sie werden es in den kommenden Übungen für mehrere Stylesheets verwenden.

Listing 14.1: Ein XML-Dokument, das stilisiert werden soll - nachricht01_14.xml

 1: <?xml version="1.0"?>
2: <!-- listing 14.1 - nachricht01_14.xml -->
3:
4: <notiz>
5: <nchr>
6: <id>m1</id>
7: <von>Kathy Shepherd</von>
8: <nachricht>Denke daran, auf dem Nachhauseweg von der Arbeit Milch zu kaufen</nachricht>
9: </nchr>
10:
11: <nchr>
12: <id>m2</id>
13: <von>Greg Shepherd</von>
14: <nachricht> Ich brauche ein wenig Hilfe bei den Hausaufgaben</nachricht>
15: </nchr>
16:
17: <nchr>
18: <id>m3</id>
19: <von>Kristen Shepherd</von>
20: <nachricht> Bitte spiele heute Abend Scribble mit mir</nachricht>
21: </nchr>
22: </notiz>

Dieses XML-Dokument hat ein Wurzelelement notiz, das abgeleitete nchr-Elemente enthält. Jedes nchr-Element enthält abgeleitete id-, von- und nachricht-Elemente.

Die Stileigenschaften festlegen

Nehmen wir an, Sie wollen das XML-Instanzdokument so wiedergeben, dass der Inhalt aller id-Elemente in Kursivschrift, der Inhalt der von-Elemente in Fettschrift und der nachricht-Text in blauer Schrift angezeigt wird. Sie können für jedes der Elemente CSS- Regeln durch Deklarationen erzeugen, die das gewünschte Eigenschafts-/Werte-Paar enthalten, um das gewollte Resultat zu erzielen.

Sie müssen die Namen der Eigenschaften und ihre entsprechenden Werte für jeden dieser Effekte kennen. Für diesen Regelsatz benötigen Sie folgende Eigenschaften und Werte:

Eine komplexere Auflistung weiterer nützlicher Eigenschaften finden Sie in Kürze, zusammen mit den jeweils passenden Werten. Erinnern Sie sich an die Syntax, die wir vorhin gezeigt haben; das CSS, der die beschriebenen Effekte erzielt, sieht aus wie in Listing 14.2. Erstellen Sie eine solche CSS-Datei und speichern Sie sie unter style01.css.

Listing 14.2: Ein einfaches Cascading Style Sheet - style01.css

 1: /* listing 14.2 style01.css */
2:
3: id
4: { font-style:italic}
5:
6: von
7: { font-weight:bold}
8:
9: nachricht
10: { color:blue}

Die Zeile 1 zeigt die Syntax für einen Kommentar in einer CSS-Datei. Kommentare werden in CSS durch die Zeichen /* und */ eingeschlossen. Der Regelsatz für das id-Element (Zeilen 3-4) deklariert, dass der Inhalt des Elements in Kursivschrift angezeigt wird ({font-style:italic}). Das von-Element (Zeile 6) wird in Fettschrift wiedergegeben ({font-weight:bold}). Der nachricht-Text wird in blauer Farbe angezeigt ({color:blue}).

Die CSS-Datei verbinden

Sie haben jetzt eine CSS-Datei und müssen sie mit dem XML-Dokument verbinden. Sie können dazu einfach eine Verarbeitungsanweisung (PI) hinzufügen, die das reservierte Schlüsselwort xml-stylesheet und zwei obligatorische Attribute einschließt. Die Syntax der PI lautet wie folgt:

<?xml-stylesheet type="text/css" href="meineDatei.css"?>

Das type-Attribut ist erforderlich, um den Typ des Stylesheets zu identifizieren, den Sie mit dem XML-Dokument verbinden. Für ein Cascading Style Sheet lautet der passende Wert für dieses Attribut immer "text/css". Der text-Abschnitt des Attributswerts ist als MIME- oder Media-Typ bekannt. Auch wenn die exakte Natur eines MIME-Typs über den Rahmen der heutigen Lektion hinausgeht, sollten Sie wissen, dass alle Stylesheets, die Sie erzeugen, aus Text bestehen, nicht aus anderen kodierten Typen wie Anwendungen, Multiparts, Nachrichten usw. Der css-Abschnitt wird Sub-Typ genannt und deklariert in diesem Fall, dass Sie ein Cascading Style Sheet erzeugen, im Gegensatz zu einem Extensible Stylesheet Language (XSL)-Stylesheet, Volltext, durch Tabs getrennte oder andere Werte.

Sie müssen auch ein href-Attribut mit einer gültigen URL einfügen, die als Wert auf die verbundene CSS-Datei zeigt. Der Wert für das href-Attribut kann eine voll qualifizierte URL sein, die auf irgendeine Stelle im Internet zeigt, oder es kann sich einfach um eine partielle URL handeln, die den relativen Standort einer lokal verfügbaren CSS-Datei anzeigt. Die Syntax der verbindenden PI, die die CSS-Datei zuweist, die Sie vorhin erzeugt haben, lautet:

<?xml-stylesheet type="text/css" href="style01.css"?>

Fügen Sie Ihrem XML-Dokument diese PI direkt vor dem Wurzelelement hinzu und speichern Sie das Resultat unter nachricht02_14.xml. Ihr XML-Dokument müsste jetzt aussehen wie das in Listing 14.3 gezeigte.

Listing 14.3: Ein XML-Dokument verbunden mit einer CSS-Datei - nachricht02_14.xml

 1: <?xml version="1.0"?>
2: <!-- listing 14.3 - nachricht02_14.xml -->
3:
4: <?xml-stylesheet type="text/css" href="style01.css"?>
5:
6: <notiz>
7: <nchr>
8: <id>m1</id>
9: <von>Kathy Shepherd</von>
10: <nachricht> Denke daran, auf dem Nachhauseweg von der Arbeit Milch zu kaufen </nachricht>
11: </nchr>
12:
13: <nchr>
14: <id>m2</id>
15: <von>Greg Shepherd</von>
16: <nachricht> Ich brauche ein wenig Hilfe bei den Hausaufgaben</nachricht>
17: </nchr>
18:
19: <nchr>
20: <id>m3</id>
21: <von>Kristen Shepherd</von>
22: <nachricht> Bitte spiele heute Abend Scribble mit mir</nachricht>
23: </nchr>
24: </notiz>

Die Verarbeitungsanweisung (<?xml-stylesheet type="text/css" href= "style01.css"?>) wurde hinzugefügt (Zeile 4), um ein Stylesheet des Typs text/css zuzuordnen, das unter style01.css lokalisiert ist, dem gleichen Unterverzeichnis wie die nachricht02_14.xml-Datei auf Ihrer Festplatte.

Abbildung 14.1:  nachricht02_14.xml, nach den Regeln  in style01.css stilisiert, wird mit IE 6 angezeigt.

Wenn Sie die Übungen mitgemacht haben, können Sie sich nachricht02_14.xml in einem Browser ansehen, der CSS Level 1 unterstützt und Sie sollten dabei eine Ausgabe wie die in Abbildung 14.1 erhalten.

14.3 CSS-Eigenschaften

Es würde den Rahmen dieses Buchs sprengen, alle möglichen CSS-Eigenschaften anzeigen zu wollen; aber einige der beliebtesten Stileigenschaften wollen wir besprechen und in Tabellen anzeigen. Eine komplette Eigenschaftsliste finden Sie an zahlreichen Referenzorten im Web. Eine alphabetische Liste steht unter http://www.blooberry.com/ indexdot/css/propindex/all.htm zur Verfügung. Eine vollständige Liste mit Querverweisen zur Browserkompatibilität finden Sie unter http://www.webreview.com/ style/css1/charts/mastergrid.shtml. Die beste Art und Weise, die Verwendung dieser Styles zu erlernen, ist das Experimentieren mit Eigenschaften und Werten. Probieren Sie die Beispiele aus, die anhand des nachricht02_14.xml-Dokuments beschrieben werden und modifizieren Sie das Dokument style01.css, während Sie in Ihrer Lektüre voranschreiten. Am Ende dieses Abschnitts können Sie Ihr endgültiges CSS-Dokument und die aufbereitete Ausgabe mit den Beispielen im Buch vergleichen.

Textstyle-Eigenschaften

Die Textstyle-Eigenschaften beeinflussen die Darstellung von Text auf einer Seite. Diese Eigenschaften wirken sich auf die Textausrichtung, die Zeilenhöhe, die Leerräume zwischen den Buchstaben usw. aus. Nehmen wir zum Beispiel an, Sie wollen den Text im nachricht-Element im Browserfenster linksbündig ausrichten und unterstreichen. Wenn Sie die zuvor erzeugte CSS-Datei erneut verwenden, sieht Ihre neue CSS-Regel so aus:

nachricht
{ color:blue;
text-align:left;
text-decoration:underline}

Wenn Sie mit einer CSS-Regel mehrere Eigenschaften für ein Element festlegen, trennen Sie die einzelnen Deklarationen mit einem Semikolon voneinander ab. Die Tabelle 14.2 fasst eine Auswahl nützlicher CSS-Textstyles zusammen.

Eigenschaft

Zweck

Mögliche Werte

letter-spacing

Steuert den Umfang des Leerraums zwischen den einzelnen Buchstaben eines Textabschnitts

Normal (Standard)
Anzahl an Pixeln

line-height

Steuert den Umfang des vertikalen Leerraums zwischen Textzeilen

Normal (Standard)
Anzahl an Pixeln

text-align

Steuert die Ausrichtung eines Textabschnitts

Browser entscheidet (Standard),
left
right
center

text-decoration

Steuert, wie der Text aussieht.

Keine (Standard)
underline
overline
line-through
blink

text-indent

Steuert das Einrücken der ersten Zeile in einem Textabschnitt

0 (Standard)
Anzahl an Pixeln
Prozentangabe

text-transform

Ändert die Groß- und Kleinschreibung in einem Textabschnitt

Keine (Standard)
uppercase
lowercase
capitalize

vertical-alignment

Steuert die vertikale Ausrichtung eines Textabschnitts

Grundlinie (Standard)
sub
super
top
text-top
middle
bottom
text-bottom

word-spacing

Steuert den Umfang des Leerraums zwischen Wörtern. Diese Eigenschaft funktioniert zurzeit noch nicht.

Normal (Standard)
Anzahl an Pixeln

Tabelle 14.2: Ausgewählte CSS-Textstyle-Eigenschaften 

Font-Eigenschaften

Die Font-Eigenschaften, die CSS anbietet, statten Sie mit einem umfangreichen Steuersatz zum Aussehen der Zeichen aus, die verwendet werden, um den Inhalt der ausgewählten Elemente wiederzugeben. Als Sie Ihre erste CSS-Datei erzeugten, verwendeten Sie die Eigenschaften font-style und font-weight. Sie haben den Inhalt des id-Elements auf eine Wiedergabe in Kursivschrift gesetzt und den Inhalt des von-Elements auf Fettschrift. Versuchen Sie, Ihre CSS-Datei so abzuändern, dass die id-Daten in einer Kursivschrift wiedergegeben werden, die 250% der normalen Zeichenhöhe ausmacht. Um dies zu erreichen, können Sie die folgende CSS-Regel für das id-Element verwenden:

id
{ font-style:italic;
font-size:250%}

Tabelle 14.3 fasst einige der Font-Eigenschaften zusammen, die CSS zur Verfügung stellt.

Eigenschaft

Zweck

Mögliche Werte

font-family

Steuert den Schrifttyp, der auf der Seite angezeigt wird

Browser entscheidet (Standard)
Name der Schriftfamilie, etwa Arial

font-size

Steuert die Größe der Schrift

medium (Standard)
Anzahl an Pixeln
Prozentangabe

font-style

Steuert den Stil der Schrift

normal (Standard)
italic
oblique

font-variant

Steuert den Schriftgrad

normal (Standard)
small-caps

font-weight

Steuert den Schriftschnitt

normal (Standard)
lighter
bold
bolder

Tabelle 14.3: Ausgewählte CSS-Font-Eigenschaften 

Farbe und Hintergrund-Eigenschaften

Diese Eigenschaften statten Sie mit Steuermöglichkeiten zur Schriftfarbe, zur Hintergrundfarbe und zum Einschluss von Bildern aus. Als Sie Ihre CSS-Datei in der ersten Übung heute erzeugten, haben Sie die Farbeigenschaft verwendet, um den Inhalt des nachricht-Elements in Blau wiederzugeben. Wenn Sie es nicht geändert haben, wird das von-Element fett wiedergegeben. Fügen Sie dem von-Element eine CSS-Regel hinzu, um den Inhalt des Hintergrunds auf hellblau zu setzen, was so aussieht:

von
{ font-weight:bold;
background-color:aqua}

Einige andere Hintergrund- und Farb-Eigenschaften werden in Tabelle 14.4 zusammengefasst.

Eigenschaft

Zweck

Mögliche Werte

background-attachment

Steuert das Scrollen des Hintergrunds

scroll (Standard)
fixed

background-color

Steuert die Hintergrundfarbe

transparent (Standard)
Name der Farbe

background-image

Lässt das Einfügen eines Hintergrundbilds zu

Kein (Standard) Bild
URL

background-position

Steuert die Position des Hintergrunds auf der Seite.

0% 0% (Standard)-Position
Angabe in Pixeln (etwa {20,20})
Prozentangabe, zum Beispiel {5%,7%}
top
bottom
left
right
center

background-repeat

Lässt verschiedene Muster für die Hintergrundwiederholung zu

repeat (Standard)
repeat-x
repeat-y
no-repeat

color

Steuert die Textfarbe

Browser entscheidet (Standard)
Name der Farbe

Tabelle 14.4: Ausgewählte CSS-Farb- und Hintergrund-Eigenschaften 

Rahmen-Eigenschaften

Es ist möglich, mit CSS einen Browser sichtbare Grenzlinien um den Inhalt ausgewählter Elemente zeichnen zu lassen. Fügen Sie eine CSS-Regel ein, die eine Grenzlinie um den Inhalt des von-Elements wiedergibt, die aus einer doppelten Linie besteht. Wenn Sie bei den bisherigen Beispielen mitgemacht haben, sieht Ihre CSS-Regel für das von-Element jetzt so aus:

von
{font-weight:bold;
background-color:aqua;
border-style:double}

Tabelle 14.5 fasst ausgewählte CSS-Grenzlinien-Eigenschaften zusammen.

Eigenschaft

Zweck

Mögliche Werte

border-bottom-width

Steuert die Breite einer Grenzlinienseite

medium (Standard)
Anzahl an Pixeln
thin
thick

border-color

Steuert die Grenzlinienfarbe in einem Abschnitt

Standard-Textfarbe
(Standard) Name der Farbe

border-left-width

Steuert die Breite einer Grenzlinienseite

medium (Standard)
Anzahl an Pixeln
thin
thick

border-right-width

Steuert die Breite einer Grenzlinienseite

medium (Standard)
Anzahl an Pixeln
thin
thick

border-style

Steuert den Stil einer Grenzlinie

Kein (Standard)
solid
double

border-top-width

Steuert die Breite einer Grenzlinienseite

medium (Standard)
Anzahl an Pixeln
thin
thick

border-width

Steuert die Breite der Grenzlinie

Undefiniert (Standard)
Anzahl an Pixeln
thin
medium
thick

clear

Definiert, ob ein Abschnitt andere Abschnitte an seiner Seite verbietet

Kein (Standard)
left
right

float

Steuert den Textfluss in einem Abschnitt

Kein (Standard)
left
right

height

Steuert die Höhe eines Abschnitts

auto (Standard)
Anzahl an Pixeln
Prozentangabe

margin-bottom

Steuert die Breite des Rands auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

margin-left

Steuert die Breite des Rands auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

margin-right

Steuert die Breite des Rands auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

margin-top

Steuert die Breite des Rands auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

padding-bottom

Steuert die Menge der Füllung auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

padding-left

Steuert die Menge der Füllung auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

padding-right

Steuert die Menge der Füllung auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

padding-top

Steuert die Menge der Füllung auf der spezifizierten Seite

0 (Standard)
Anzahl an Pixeln
Prozentangabe

width

Steuert die Breite eines Abschnitts

auto (Standard)
Anzahl an Pixeln
Prozentangabe

Tabelle 14.5: Ausgewählte CSS-Grenzlinien-Eigenschaften 

Anzeige-Eigenschaften

Diese Eigenschaften stellen spezielle Anweisungen an den Browser zur Verfügung, mit denen verschiedene Aspekte des Spacings und Anzeigemerkmale gesteuert werden können. Die Eigenschaft z-index zum Beispiel ist eine besondere Eigenschaft, mit der die Anordnung der Elemente gesteuert wird, wenn sie übereinander gestapelt werden. Der Stapeleffekt kann durch relative und absolute Positionierung von Elementen in CSS erreicht werden. Das Konzept der Positionierung geht über den Rahmen der heutigen Übungen hinaus, aber Sie können über die kontrollierte Positionierung von Elementen unter Verwendung von CSS bei http://www.w3.org/TR/REC-CSS2/ mehr nachlesen.

Das display:block-Eigenschafts-/Werte-Paar ist für die Stilisierung bei XML nützlich. Der Wert block weist einen Browser an, einen Zeilenumbruch vor und nach dem Elementtext durchzuführen. Erzeugen Sie in Ihrer CSS-Datei eine Regel, die veranlasst, dass alle nchr- Elemente in einem separaten Block angezeigt werden, wobei vor und nach jedem Element ein Zeilenumbruch stattfindet. Ihre neue Regel sieht so aus:

nchr
{display:block}

Eigenschaft

Zweck

Mögliche Werte

white-space

Steuert die Leerraum-Formatierung in einem Abschnitt

Normal (Standard)
pre
nowrap

display

Steuert die Anzeige eines Abschnitts

block (Standard)
inline
list-item
Keiner

visibility

Steuert die Sichtbarkeit eines Elements

inherit (Standard)
visible
hidden

z-index

Steuert das Stapeln von Elementen

auto (Standard)
Zahl

Tabelle 14.6: Ausgewählte CSS-Anzeige-Eigenschaften 

Resultierender Style

Wenn Sie die Übungen in diesem Abschnitt mitgemacht haben, sieht Ihr CSS-Dokument jetzt so aus wie in Listing 14.4.

Listing 14.4: Das vollständige Style-Sheet-Beispiel - style02.css

 1: /* listing 14.4 style02.css */
2:
3: id
4: {font-style:italic;
5: font-size:250%}
6:
7: von
8: {font-weight:bold;
9: background-color:aqua;
10: border-style:double}
11:
12: nachricht
13: {color:blue;
14: text-align:left;
15: text-decoration:underline}
16:
17: nchr
18: {display:block}

Wenn dieses Stylesheet mit dem XML-Nachricht-Dokument verbunden wird, das Sie vorher erzeugt haben, sieht die zu erwartende Wiedergabe so ähnlich aus wie in Abbildung 14.2.

Abbildung 14.2:  Das resultierende Nachricht-Dokument mit CSS-Styles, wiedergegeben vom Microsoft Internet Explorer 5.5

Mehrere Elemente als Selektoren

Wenn Sie mehrere Elemente auf die gleiche Art stilisieren wollen, können Sie alle Elemente durch Kommata getrennt als Selektor-Auflistung angeben. Wenn Sie zum Beispiel die Farbe für den Inhalt der Elemente id und von auf Rot setzen wollen, können Sie einen CSS-Regelsatz wie folgt erzeugen:

id, von
{color:red}

14.4 Beschränkungen von CSS

Sie haben gesehen, dass CSS viele Wiedergabe-Eigenschaften steuern können und recht einfache, aber effektive Resultate im Browser erzeugen. Dennoch hat der CSS-Ansatz einige Beschränkungen. Jon Bosak, Redner bei einem vom W3C gesponserten Treffen von Webentwicklern, das am 11. April 1997 abgehalten wurde, hat diese Beschränkungen festgestellt:

(Quelle: http://www.webreview.com/1997/11_28/webauthors/11_28_97_5.shtml)

Viele dieser Beschränkungen wurden durch XSL, das Thema des 15. Tages, angegangen.

14.5 Zusammenfassung

Heute haben Sie einfache Cascading Style Sheets erstellt und sie verwendet, um XML für die Browserwiedergabe zu formatieren. Das ist ein Ansatz, der von den meisten wichtigen Browsern unterstützt wird und eine clientseitige Wiedergabe-Option darstellt, die relativ flexibel und einfach zu erlernen ist. Sie haben gelernt, dass CSS-Regeln als Deklarationen ausgedrückt werden, die Eigenschafts-/Werte-Paare umfassen, mit denen definiert wird, wie ein Client den Elementinhalt anzeigen soll.

14.6 Fragen und Antworten

Frage:
Spielt die XML-Gültigkeit eine Rolle in Hinsicht auf die Verwendung von CSS?

Antwort:
Cascading Style Sheets funktionieren beim Stilisieren aller XML-Instanzen, die zumindest wohl geformt sind. Wenn die Dokument-Instanz ein Schema enthält, muss dieses Dokument auch gültig sein. Das ist keine Anforderung, die CSS stellt, sondern eine vom XML-Prozessor oder Browser kommende, der versucht, das Dokument zu validieren, wenn es ein Schema enthält. Deshalb spielt die Gültigkeit keine große Rolle in Hinsicht auf CSS, sie kann aber dennoch von Bedeutung sein.

Frage:
Inwiefern erspart die Verwendung von CSS Aufwand bei der Website-Verwaltung?

Antwort:
Wenn Sie eine Website mit mehreren Dokumenten haben, die alle ähnlich aussehen sollen, können Sie einen einzigen Stylesheet einfügen, um sie alle identisch zu formatieren. Wenn der Seitenstil allgemein verändert werden soll, kann man die Stylesheets manipulieren und braucht die ursprünglichen Datendokumente nicht anzutasten. Alle neuen Dokumente, die hinzugefügt werden, können mit dem Master-Style-Sheet verbunden werden, um ein beständiges Aussehen die ganze Site hindurch sicherzustellen.

14.7 Übung

Die Übung soll Ihre Kenntnis dessen, was Sie heute gelernt haben, überprüfen. Die Lösungen finden Sie in Anhang A.

Stilisieren Sie Ihr Dokument cd.xml mit den Eigenschaften, die Sie heute gelernt haben, sodass es aussieht wie das in Abbildung 14.3 gezeigte.

Abbildung 14.3:  Das stilisierte cd.xml-Dokument - cd14.xml - mit einem verbundenen Stylesheet - cd14.css

Um ein Resultat zu erzielen, das dem in Abbildung 14.3 ähnelt, müssen Sie einige weitere Details wissen. Diese finden Sie in der folgenden Auflistung:



vorheriges KapitelInhaltsverzeichnisStichwortverzeichnisFeedbackKapitelanfangnächstes Kapitel


© Markt+Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH