1 Informationen zur CSS2-Spezifikation
1.1 Wie Sie die Spezifikation lesen
Diese Spezifikation richtet sich hauptsächlich an zwei Lesergruppen: CSS-Autoren und CSS-Implementierer. Wir hoffen, die Spezifikation versorgt die Autoren mit dem Werkzeug, das sie brauchen, um effiziente, attraktive Dokumente zu erstellen, auf die ein einfacher Zugriff möglich ist, ohne sie zu sehr mit den Implementierungsdetails von CSS zu belasten. Die Implementierer hingegen sollen hier alles finden, was sie brauchen, um konforme Benutzerprogramme (User Agents) zu schreiben. Die Spezifikation beginnt mit einer allgemeinen Einführung in CSS und wird zum Ende hin immer technischer und spezifischer. Damit Sie alle wichtigen Informationen möglichst schnell finden, wird die einfache Navigation sowohl in der elektronischen als auch in der gedruckten Version durch ein allgemeines Inhaltsverzeichnis, spezielle Inhaltsverzeichnisse am Anfang eines jeden Abschnitts sowie einen Index sichergestellt.
Diese Spezifikation wird in zwei Formen bereitgestellt: elektronisch und gedruckt. Obwohl die beiden Darstellungen zweifellos sehr ähnlich sind, werden die Leser einige Unterschiede erkennen. In der gedruckten Version funktionieren beispielsweise (offensichtlich) keine Links, und in der elektronischen Version gibt es keine Seitenzahlen. Bei inhaltlichen Abweichungen ist die elektronische Version die ausschlaggebende.
1.2 Der Aufbau der Spezifikation
Die Spezifikation ist in die folgenden Abschnitte unterteilt:
1.2.1 Abschnitt 2: Eine Einführung in CSS2
Die Einführung beinhaltet einen kurzen Überblick über CSS2 sowie eine Beschreibung der Entwurfsgrundlagen, die hinter CSS2 stehen.
1.2.2 Abschnitt 3 – 20: CSS2-Referenzhandbuch
Die CSS-Sprachreferenz bildet einen Großteil des Referenzhandbuchs. Diese Referenz definiert, was in einem CSS2-Stylesheet enthalten sein darf (Syntax, Eigenschaften und Eigenschaftswerte) und wie die Benutzerprogramme diese Stylesheets interpretieren müssen, um konform zur Spezifikation zu sein.
1.2.3 Anhänge
Die Anhänge beschreiben ein Beispiel-Stylesheet für HTML 4.0, Änderungen im Vergleich zu CSS1, Anmerkungen zu Implementierung und Leistung, die Grammatik von CSS2, eine Liste normativer und informativer Literaturhinweise sowie drei Indexe: einen für Eigenschaften, einen für Deskriptoren und einen allgemeinen Gesamtindex.
1.3 Konventionen
1.3.1 Elemente und Attribute der Dokumentsprache
- Namen von CSS-Eigenschaften, Deskriptoren und Pseudo-Klassen sind in einfache Anführungszeichen eingeschlossen.
- CSS-Werte sind in einfache Anführungszeichen eingeschlossen.
- Namen von Elementen der Dokumentsprache sind in Großbuchstaben dargestellt.
- Namen von Attributen der Dokumentsprache sind in Kleinbuchstaben dargestellt und in doppelte Anführungszeichen eingeschlossen.
1.3.2 CSS-Eigenschaftsdefinitionen
Jede CSS-Eigenschaftsdefinition beginnt mit einem Überblick über die Schlüsselinformationen, der etwa wie folgt aussieht:
'eigenschaftsname'
Wert: |
erlaubte Werte & Syntax |
Ausgangswert: |
Ausgangswert |
Angewendet auf: |
Elemente, auf die sich diese Eigenschaft bezieht |
Vererbt: |
Gibt an, ob diese Eigenschaft vererbt wird |
Prozentwerte: |
Gibt an, wie Prozentwerte interpretiert werden |
Medium |
Gibt an, auf welche Mediengruppe sich die Eigenschaft bezieht |
Wert
Dieser Teil listet die gültigen Werte für die Eigenschaft auf. Es gibt mehrere Möglichkeiten, Werttypen anzugeben:
- Schlüsselwortwerte (z.B. auto, disc usw.)
- Grundlegende Datentypen, die zwischen "<" und ">" stehen (z.B. <length>, <percentage> usw.). In der elektronischen Version des Dokuments verweist jede Instanz eines grundlegenden Datentyps mit Hilfe eines Links auf ihre Definition.
- Typen, die denselben Wertebereich haben wie eine Eigenschaft mit demselben Namen (z.B. <'border-width'>, <'background-attachment'> usw.). In diesem Fall ist der Typname der Eigenschaftsname (einschließlich Anführungszeichen) zwischen "<" und ">" (z.B. <'border-width'>). In der elektronischen Version des Dokuments verweist jede Instanz dieser Art von Nicht-Terminal-Symbolen mit Hilfe eines Links auf die entsprechende Eigenschaftsdefinition.
- Nicht-Terminal-Symbole, die nicht denselben Namen wie eine Eigenschaft haben. In diesem Fall erscheint der Name des Nicht-Terminal-Symbols zwischen "<" und ">", wie in <border-width>. Beachten Sie die Unterscheidung zwischen <border-width> und <'border-width'>; Letzteres wird relativ zu Ersterem definiert. Die Definition eines Nicht-Terminal-Symbols befindet sich in der Nähe des ersten Auftretens in der Spezifikation. In der elektronischen Version des Dokuments verweist jede Instanz dieses Werttyps mit Hilfe eines Links auf die entsprechende Wertdefinition.
Andere Wörter in diesen Definitionen sind Schlüsselwörter und müssen dort wörtlich und ohne Anführungszeichen erscheinen (z.B. red). Der Schrägstrich (/) und das Komma (,) müssen ebenfalls exakt erscheinen.
Werte können wie folgt angeordnet werden:
- Mehrere nebeneinander gestellte Wörter bedeuten, dass sie alle in der vorgegebenen Reihenfolge erscheinen müssen.
- Ein Längsstrich (|) trennt zwei oder mehr Alternativen voneinander ab: genau eine von ihnen muss erscheinen.
- Ein doppelter Längsstrich (||) trennt zwei oder mehr Optionen voneinander ab: eine oder mehrere davon müssen in beliebiger Reihenfolge erscheinen.
- Eckige Klammern ([]) dienen der Gruppierung.
Das Nebeneinanderstellen bedeutet eine stärkere Gewichtung als der doppelte Längsstrich, und der doppelte Längsstrich ist stärker als der einfache Längsstrich. Die nachfolgenden Zeilen sind also äquivalent:
a b | c || d e
[ a b ] | [ c || [ d e ]]
Jedem Typ, jedem Schlüsselwort und jeder in eckigen Klammern platzierten Gruppe kann einer der folgenden Modifizierer folgen:
- Ein Stern (*) legt fest, dass der vorhergehende Typ, das vorhergehende Wort oder die vorhergehende Gruppe null Mal oder öfter vorkommt.
- Ein Plus-Zeichen (+) legt fest, dass der vorhergehende Typ, das vorhergehende Wort oder die vorhergehende Gruppe einmal oder mehrmals vorkommen.
- Ein Fragezeichen (?) legt fest, dass der vorhergehende Typ, das vorhergehende Wort oder die vorhergehende Gruppe optional sind.
- Ein Zahlenpaar in geschweiften Klammern ({A,B}) legt fest, dass der vorhergehende Typ, das vorhergehende Wort oder die vorhergehende Gruppe mindestens A-mal und höchstens B-mal vorkommen.
Die nachfolgenden Beispiele demonstrieren die verschiedenen Werttypen:
Wert: N | NW | NE
Wert: [ <length> | thick | thin ]{1,4}
Wert: [<family-name> , ]* <family-name>
Wert: <uri>? <color> [ / <color> ]?
Wert: <uri> || <color>
Ausgangswert
Dieser Teil spezifiziert den Ausgangswert der Eigenschaft. Falls die Eigenschaft vererbt ist, ist dies der Wert, den das Wurzelelement des Dokumentbaums aufweist. Weitere Informationen finden Sie im Abschnitt über die Kaskade, wo Sie auch mehr über die im Stylesheet spezifizierten Werte, geerbte Werte und Ausgangswerte erfahren.
Angewendet auf
Dieser Teil listet die Elemente auf, auf die sich die Eigenschaft bezieht. Man geht davon aus, dass alle Elemente alle Eigenschaften besitzen, aber einige Eigenschaften haben keine Auswirkung auf die Darstellung bestimmter Elementtypen. Beispielsweise bezieht sich 'white-space' nur auf Elemente auf Blockebene.
Vererbt
Dieser Teil gibt an, ob der Eigenschaftswert von einem Vorfahrenelement geerbt wurde. Lesen Sie bitte im Abschnitt über die Kaskade nach, wo Sie weitere Informationen über das Zusammenspiel zwischen im Stylesheet spezifizierten Werten, geerbten Werten und Ausgangswerten finden.
Prozentwerte
Dieser Teil gibt an, wie Prozentwerte interpretiert werden sollen, wenn sie im Wert der Eigenschaft auftreten. Ist hier "N/A" angegeben, heißt das, die Eigenschaft akzeptiert keine Prozentwerte als Wert.
Mediengruppen
Dieser Teil gibt die Mediengruppen an, auf die sich die Eigenschaft bezieht. Die Konformitätsbedingungen sagen aus, dass Benutzerprogramme diese Eigenschaft unterstützen müssen, wenn sie die Darstellung der in diesen Mediengruppen enthaltenen Medientypen unterstützen wollen.
1.3.3 Zusammenfassende Eigenschaften
Einige Eigenschaften sind zusammenfassende Eigenschaften, die es den Autoren erlauben, die Werte mehrerer Eigenschaften innerhalb einer einzigen Eigenschaft anzugeben.
Die Eigenschaft 'font' beispielsweise ist eine zusammenfassende Eigenschaft für die gleichzeitige Einstellung von 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height' und 'font-family'.
Werden in einer zusammenfassenden Form Werte weggelassen, wird diesen „fehlenden“ Eigenschaften ihr Ausgangswert zugewiesen (lesen Sie dazu auch den Abschnitt über die Kaskade).
Die Stilregeln des folgenden Beispiels:
H1 {
font-weight: bold;
font-size: 12pt;
line-height: 14pt;
font-family: Helvetica;
font-variant: normal;
font-style: normal;
font-stretch: normal;
font-size-adjust: none
}
könnten auch innerhalb einer einzigen zusammenfassenden Eigenschaft geschrieben werden:
H1 { font: bold 12pt/14pt Helvetica }
In diesem Beispiel nehmen 'font-variant', 'font-stretch', 'font-size-adjust' und 'font-style' ihre Ausgangswerte an.
1.3.4 Anmerkungen und Beispiele
Alle Beispiele, die eine falsche Verwendung demonstrieren, sind als „FEHLERHAFTES BEISPIEL“ gekennzeichnet.
Alle HTML-Beispiele sind konform zur strengen HTML 4.0 DTD (die in [HTML40] definiert ist), es sei denn, es wird durch eine Dokumenttypdeklaration etwas anderes angegeben.
Anmerkungen dienen nur zu Ihrer Information.
Beispiele und Anmerkungen sind innerhalb der HTML-Quellen für die Spezifikation gekennzeichnet, und CSS1-Benutzerprogramme stellen sie auf spezielle Weise dar.
1.3.5 Bilder und ausführliche Beschreibungen
Die meisten Bilder in der elektronischen Version dieser Spezifikation werden von einer „ausführlichen Beschreibung“ begleitet, die den Bildinhalt zusammenfasst. Ein Link zu der ausführlichen Beschreibung wird durch ein „[D]“ am rechten Bildrand gekennzeichnet.
Bilder und ausführliche Beschreibungen haben nur informativen Charakter.
1.4 Danksagungen
Diese Spezifikation entstand in der W3C-Arbeitsgruppe zu Cascading Style Sheets und Formatierungseigenschaften. Neben den Herausgebern dieser Spezifikation sind die Mitglieder dieser Arbeitsgruppe: Brad Chase (Bitstream), Chris Wilson (Microsoft), Daniel Glazman (Electricité de France), Dave Raggett (W3C/HP), Ed Tecot (Microsoft), Jared Sorensen (Novell), Lauren Wood (SoftQuad), Laurie Anna Kaplan (Microsoft), Mike Wexler (Adobe), Murray Maloney (Grif), Powell Smith (IBM), Robert Stevahn (HP), Steve Byrne (JavaSoft), Steven Pemberton (CWI), Thom Phillabaum (Netscape), Douglas Rand (Silicon Graphics), Robert Pernett (Lotus), Dwayne Dicks (SoftQuad) und Sho Kuwamoto (Macromedia). Wir danken ihnen für ihre stetigen Bemühungen.
Einige der in die Arbeitsgruppe eingeladenen Experten haben ebenfalls Beiträge geleistet: George Kersher, Glenn Rippel (Bitstream), Jeff Veen (HotWired), Markku T. Hakkinen (The Productivity Works), Martin Dürst (W3C, früher Universität Zürich), Roy Platon (RAL), Todd Fahrner (Verso), Tim Boland (NIST), Eric Meyer (Case Western Reserve University) und Vincent Quint (W3C).
Der Abschnitt über Web-Schriften wurde stark geprägt durch Brad Chase (Bitstream), David Meltzer (Microsoft Typography) und Steve Zilles (Adobe). Die folgenden Leute haben ebenfalls auf die unterschiedlichsten Arten zu dem Abschnitt über Schriften beigetragen: Alex Beamon (Apple), Ashok Saxena (Adobe), Ben Bauermeister (HP), Dave Raggett (W3C/HP), David Opstad (Apple), David Goldsmith (Apple), Ed Tecot (Microsoft), Erik van Blokland (LettError), François Yergeau (Alis), Gavin Nicol (Inso), Herbert van Zijl (Elsevier), Liam Quin, Misha Wolf (Reuters), Paul Haeberli (SGI) und Phil Karlton (Netscape).
Der Abschnitt über Seitenmedien wurde größtenteils von Robert Stevahn (HP) und Stephen Waters (Microsoft) geschrieben.
Robert Stevahn (HP), Scott Furman (Netscape) und Scott Isaacs (Microsoft) haben wichtige Beiträge zur CSS-Positionierung geleistet.
Mike Wexler (Adobe) war Herausgeber des temporären Arbeitsentwurfs, der viele der neuen Funktionsmerkmale von CSS2 beschrieb.
T.V. Raman (Adobe) leistete wesentliche Beiträge zu ACSS (Aural Cascading Style Sheets) und den Konzepten der akustischen Darstellung, basierend auf seiner Arbeit über AsTeR (Audio System For Technical Readings). Er brachte eine erste Skizze der ACSS-Spezifikation ein, die die Form der aktuellen Spezifikation wesentlich geprägt hat. Werte für akustische Eigenschaften im HTML 4.0 Beispiel-Stylesheet stammen aus dieser Quelle; momentan verwendet er sie täglich auf seinem Audio-Desktop in Kombination mit Emacspeak und dem Emacs W3-Browser (von William Perry, der auch die akustischen Erweiterungen auf der W3-Seite des Zauns implementiert hat).
Todd Fahrner (Verso) untersuchte aktuelle und ältere Browser, um das Beispiel-Stylesheet im Anhang zu entwickeln.
Unser Dank gilt Jan Kärrman, Autor von html2ps, der uns tatkräftig dabei half, die PostScript-Version der Spezifikation zu erstellen.
In elektronischer und physischer Form haben die folgenden Leute zur Entwicklung von CSS2 beigetragen: Alan Borning, Robert Cailliau, Liz Castro, James Clark, Dan Connolly, Donna Converse, Daniel Dardailler, Al Gilman, Daniel Greene, Scott Isaacs, Geir Ivarsøy, Vincent Mallet, Kim Marriott, Brian Michalowski, Lou Montulli, Henrik Frystyk Nielsen, Jacob Nielsen, Eva von Pepel, William Perry, David Siegel, Peter Stuckey und Jason White.
Die Diskussionen über www-style@w3.org haben viele Schlüsselaspekte von CSS beeinflusst. Insbesondere danken wir Bjorn Backlund, Todd Fahrner, Lars Marius Garshol, Sue Jordan, Ian Hickson, Susan Lesch, Andrew Marshall, MegaZone, Eric Meyer, Russell O’Connor, David Perrell, Liam Quinn, Jon Seymour, Neil St. Laurent, Taylor, Brian Wilson und Chris Wilson für ihre Teilnahme.
Unser Dank geht an die WAI PF-Arbeitsgruppe (Web Accessibility Inititaive Proticols and Formats Technical Review), die uns geholfen hat, Aspekte der Zugänglichkeit für CSS2 zu verbessern.
Dank an Philippe Le Hégaret, dessen CSS-Validator uns geholfen hat, korrekte Beispiele und eine sensible Grammatik sicherzustellen.
Besonderer Dank gilt Arnaud Le Hors, dessen Engineering-Beiträge dafür gesorgt haben, dass dieses Dokument funktioniert.
Adam Costello hat diese Spezifikation verbessert, indem er sie detailliert überprüft hat.
Und schließlich geht unser Dank an Tim Berners-Lee, ohne den nichts von alledem möglich gewesen wäre.
1.5 Copyright-Hinweis
Copyright © 1997 World Wide Web Consortium (Massachusetts Institute of Technology, Insitut National de Recherche en Informatique et en Automatique, Keio University). Alle Rechte vorbehalten.
Dokumente auf der Site des W3C werden von den Copyright-Inhabern unter der nachfolgenden Lizenz bereitgestellt. Durch das Herunterladen, Verwenden und/oder Kopieren dieses Dokuments oder des W3C-Dokuments, aus dem der Link für diese Aussage stammt, bestätigen Sie, dass Sie die folgenden Bestimmungen und Bedingungen gelesen und verstanden haben und dass Sie sich entsprechend verhalten:
Die Berechtigung für die Verwendung, das Kopieren und die Weitergabe des Inhalts dieses Dokuments oder des entsprechenden W3C-Dokuments auf jedem Medium für jeden Zweck und ohne Gebühr oder Tantiemen wird hiermit erteilt, vorausgesetzt, Sie nehmen Folgendes in ALLE Kopien des Dokuments oder Teile davon, die Sie verwenden, auf:
- Einen Link oder die URI zum Original-W3C-Dokument.
- Die oben aufgeführte Copyright-Notiz des Originalautors, und falls diese nicht existiert, einen Hinweis der folgenden Form: „Copyright © World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). Alle Rechte vorbehalten.“
- Falls existent, den STATUS des W3C-Dokuments.
Falls der Platz es erlaubt, sollte der vollständige Text dieses HINWEISES bereitgestellt werden. Darüber hinaus sollten die Copyright-Inhaber aller Software, Dokumente oder anderer Dinge oder Produkte, die Sie der Implementierung dieses Dokuments oder eines Teils davon folgend erstellen, erwähnt werden.
Diese Lizenz berechtigt Sie nicht, Änderungen oder Ableitungen zu erstellen.
DIESES DOKUMENT WIRD „ALS SOLCHES“ BEREITGESTELLT, UND DIE COPYRIGHT-INHABER ÜBERNEHMEN KEINE GARANTIEN, WEDER AUSDRÜCKLICH NOCH IMPLIZIT, INKLUSIVE ABER NICHT BEGRENZT AUF GARANTIEN DER HANDELBARKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, DIE NICHTÜBERTRETUNG GELTENDER GESETZE ODER TITEL, DASS DER INHALT DES DOKUMENTS FÜR EINEN BESTIMMTEN ZWECK GEEIGNET IST, UND AUCH NICHT, DASS DIE IMPLEMENTIERUNG DIESES INHALTS KEINE GELTENDEN RECHTE ODER PATENTE DRITTER, COPYRIGHTS, WARENZEICHEN ODER ANDERE RECHTE VERLETZT.
DIE COPYRIGHT-INHABER SIND NICHT FÜR DIREKTE, INDIREKTE, SPEZIELLE ODER FOLGESCHÄDEN, DIE AUS DER NUTZUNG DES DOKUMENTS ENTSTEHEN, HAFTBAR, UND AUCH NICHT FÜR DIE LEISTUNG ODER IMPLEMENTIERUNG SEINES INHALTS.
Die Namen und Warenzeichen der Copyright-Inhaber dürfen NICHT in der Werbung oder anderen Veröffentlichungen genutzt werden, was dieses Dokument betrifft, ebenso wenig wie sein Inhalt, wenn nicht vorab eine spezielle schriftliche Genehmigung dafür eingeholt wurde. Das in diesem Dokument genannte Copyright bleibt immer den Copyright-Inhabern vorbehalten.