Cascading Style Sheets

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

Cascading Style Sheets (CSS)
Class-header-css3.jpg
Dateiendung: .css
MIME-Type: text/css
Entwickelt von: World Wide Web Consortium
Art: Stylesheet-Sprache
Standard(s): Level 1 (Recommendation)
Level 2 (Recommendation)
Level 2 Revision 1 (Recommendation)

Cascading Style Sheets (englische Aussprache [kæsˌkeɪdɪŋˈstaɪlʃiːts]; für stufenförmige oder (hintereinander) geschachtelte Gestaltungsvorlagen), kurz CSS genannt, ist eine deklarative Sprache für Stilvorlagen (engl. stylesheets) von strukturierten Dokumenten. Sie wird vor allem zusammen mit HTML und XML (zum Beispiel bei SVG) eingesetzt.

Grundidee[Bearbeiten]

CSS wurde entworfen, um Inhalte weitgehend von Darstellungsvorgaben zu trennen. Dabei werden nur die inhaltliche Gliederung eines Dokumentes und die Bedeutung seiner Teile in HTML oder XML beschrieben, während mit CSS gesondert davon, vorzugsweise in separaten CSS-Dateien, festgelegt wird, wie die Inhalte dargestellt werden sollen (Farben, Layout, Typografie und dergleichen). Gab es anfänglich nur einfache Darstellungsanweisungen, so wurden später komplexere Module hinzugefügt, mit denen zum Beispiel Animationen oder für verschiedene Ausgabemedien verschiedene Darstellungen definiert werden können.

Elemente eines Dokumentes können aufgrund verschiedener Eigenschaften identifiziert werden; dazu zählen neben dem Elementnamen (z. B. a für alle Linkelemente), ihrer ID und ihrer Position innerhalb des Dokumentes (z. B. alle Bildelemente innerhalb von Linkelementen) auch Details wie Attribute (z. B. alle Linkelemente, deren href-Attribut mit www.example.com beginnen) oder die Position in einer Menge von Elementen (z. B. das 7. Element einer Liste). Mit CSS-Regeln können für jedes Element die konkreten Werte für bestimmte Darstellungsattribute festgelegt werden. Diese Festlegungen können an zentraler Stelle erfolgen, sogar in einem separaten Dokument, wodurch sie leichter für andere Dokumente wiederverwendet werden können. Daneben enthält CSS ein Vererbungsmodell für Auszeichnungsattribute – deshalb cascading – das die Anzahl nötiger Definitionen vermindert.

Mit CSS kann man für verschiedene Ausgabemedien (Bildschirm, Papier, Projektion, Sprache) unterschiedliche Darstellungen vorgeben. Das ist nützlich, um zum Beispiel die Verweisadressen von Hyperlinks beim Drucken aufzuführen oder für Geräte wie PDAs und Mobiltelefone, die kleine Displays oder eine geringe Auflösung haben, Seiten anzubieten, die schmal genug und nicht zu hoch sind, um auf solchen Geräten gut lesbar angezeigt zu werden.

CSS gilt als die Standard-Stylesheetsprache für Webseiten. Die früher üblichen HTML-Elemente wie font oder center gelten als veraltet (engl. deprecated veraltet), das heißt, sie sollen in Zukunft aus dem HTML-Standard entfernt werden[1]. So gehören Font-Tags schon nicht mehr zu HTML 5.[2]

Geschichte und Versionen[Bearbeiten]

Anfänge[Bearbeiten]

Der erste Vorschlag für Web-Stylesheets kam 1993 auf, mehrere weitere folgten bis 1995. Cascading Style Sheets (CSS), wie sie aktuell bekannt sind, wurden 1994 von Håkon Wium Lie vorgeschlagen. Bert Bos arbeitete zu dieser Zeit an der Implementierung eines Browsers namens Argo, der seine eigene Stylesheet-Sprache benutzte. Die beiden entschieden sich, zusammenzuarbeiten und CSS zu entwickeln.

Es gab zu dieser Zeit auch andere Sprachen mit dem gleichen Ziel, die Erfinder von CSS brachten aber als erste die Idee auf, Regeln zu definieren, die über mehrere Stylesheets hinweg vererbt werden konnten.

Nach der Präsentation von CSS durch Lie auf der Konferenz „Mosaic and the Web“ in Chicago 1994, und später mit Bos 1995 wurde das World Wide Web Consortium (W3C) auf CSS aufmerksam. Lie und Bos arbeiteten mit anderen Mitgliedern in diesem Rahmen an CSS weiter. Im Dezember 1996 wurde dann die CSS Level 1 Recommendation publiziert. Diesen Normierungsvorschlag befolgen die aktuellen Browser mittlerweile fast vollständig.

CSS2 und 2.1[Bearbeiten]

CSS Level 2 (CSS2) wurde im Mai 1998 veröffentlicht. Bis heute (Stand: Januar 2010) wird diese Empfehlung von keinem verbreiteten Browser vollständig implementiert. Manche Browser setzen den größten Teil von CSS2 korrekt um, andere hingegen bieten nur eine mangelhafte Unterstützung von wenigen Teiltechniken. Bei der Verwendung im Web ergeben sich daher oft Schwierigkeiten.

Seit 2002 arbeitete das W3C an einer Zwischenversion CSS Level 2 Revision 1 (CSS2.1),[3] die die Erfahrungen mit CSS2 berücksichtigt, Unstimmigkeiten korrigiert und diejenigen Teiltechniken streicht, die bisher in verschiedenen Browsern nicht korrekt implementiert wurden. Am 7. Juni 2011 wurde CSS2.1 als Recommendation veröffentlicht.[4] CSS2.1 bringt selbst keine grundlegend neuen Fähigkeiten mit sich.

CSS3[Bearbeiten]

Seit 2000 ist CSS Level 3 in der Entwicklung.[5] Hier werden die Entwicklungen weiter vorangetrieben, die bereits mit CSS2 begonnen wurden. CSS3 wird im Gegensatz zu den Vorgängern modular aufgebaut sein, womit einzelne Teiltechniken (beispielsweise Steuerung der Sprachausgabe oder Selektoren) in eigenen Versionsschritten entwickelt werden können. So nähert sich CSS bei seinen Fähigkeiten mehr dem etablierten DSSSL (für SGML) an und wird wohl auch in Zukunft noch eine Alternative zu XML-basierten Stylesheet-Sprachen wie XSL-FO sein. Derzeit veröffentlichte und breit unterstützte Standards sind unter anderem CSS Color Level 3, CSS Namespaces, Selectors Level 3 und Media Queries. Neben diesen Modulen stehen weitere Elemente zur Diskussion, etwa ein Layout-Modul oder verschiedene Grafikfilter.[6] Moderne Browser unterstützen jedoch schon viele CSS3-Module, die noch nicht durch das W3C standardisiert sind.[7]

Nachfolger[Bearbeiten]

Im Frühjahr 2012 gab es mehrere Berichte, das W3C arbeite an einem Nachfolger von CSS3. Dieser sollte naturgemäß unter der Bezeichnung CSS4 veröffentlicht werden und unter anderem die Selektoren nochmals leistungsfähiger machen und gleichzeitig vereinfachen.[8] Im September 2012 haben Vertreter der entsprechenden Arbeitsgruppe des W3C jedoch klargestellt, dass es CSS4 nicht geben wird: „There will never be a CSS4.“[9] Vielmehr soll die künftige Entwicklung des Standards in Form einer schrittweisen Aktualisierung der Module von CSS3 geschehen.

Syntax[Bearbeiten]

Der Aufbau von CSS-Regeln[Bearbeiten]

  Selektor [, Selektor2, …]
     {
        Eigenschaft-1: Wert-1;
        …
        Eigenschaft-n: Wert-n[;]
     }
 /* Kommentar */
 /* In eckigen Klammern stehen optionale Angaben */

Eine CSS-Regel gibt an, dass für festgelegte Teile eines Dokuments eine bestimmte Eigenschaftskombination gelten soll. Sie wird geschrieben als eine kommagetrennte Liste von Selektoren („Für diese Typen von Teilen …„), gefolgt von einer in geschweiften Klammern stehenden, semikolongetrennten Liste von Eigenschafts-Deklarationen („… nimm alle diese Eigenschaften!“); nach der letzten Eigenschaftsdeklaration ist ein abschließendes Semikolon erlaubt. Eine Eigenschaftsdeklaration besteht aus deren Namen und der Angabe, welchen Wert sie annehmen soll. Diese Name-Wert-Paare werden ihrerseits durch einen Doppelpunkt getrennt.

Um diese Teile einer Regel herum ist Weißraum frei verwendbar. Häufig schreibt man den Doppelpunkt ohne Zwischenraum hinter den Eigenschaftsnamen, jede Eigenschaftsdeklaration auf eigener Zeile und schließt auch die letzte Eigenschaft mit einem Semikolon – so kommt es zu weniger Syntaxfehlern bei Änderungen.

Ein Stylesheet darf beliebig viele solcher Regeln enthalten. Die folgende Tabelle enthält eine vollständige Übersicht aller Selektoren, mit denen Elemente (meist HTML-Elemente) ausgewählt werden können.

Selektoren[Bearbeiten]

Ein Selektor nennt die Bedingungen, die auf ein Element zutreffen müssen, damit der nachfolgende Satz an CSS-Deklarationen mit seinen Darstellungsvorgaben auf das Element angewendet wird. Solche Bedingungen beschreiben unzweideutig, welche Eigenschaften (Typ, Klasse, ID, Attribut oder Attributwert) Elemente haben müssen oder in welchem Kontext sie im Dokument stehen müssen (Existenz eines bestimmten übergeordneten Elementes oder eines Vorgängerelementes bestimmten Typs), damit die Darstellungsvorgaben für sie gelten sollen. In einem Selektor können mehrere Auswahlkriterien verknüpft sein.

Muster Bedeutung Eingeführt in Definition Erläuterung
einfache Selektoren
* Selektiert jedes Element CSS2 Universal selector Der Universalselektor
E Selektiert jedes Element vom Typ E CSS1 Type selectors Der Typselektor
.c Selektiert jedes Element der Klasse c (analog [class~='c']) CSS1 Class selectors Der Klassenselektor
#myid Selektiert das Element mit der ID „myid“. CSS1 ID selectors Der ID-Selektor
[foo] Selektiert Elemente, deren „foo“-Attribut gesetzt ist (unabhängig vom Wert) CSS2 Attribute selectors Attributpräsenz
[foo=bar] Selektiert Elemente, deren „foo“-Attribut mit dem Wert „bar“ gesetzt ist CSS2 Attributwerte
[foo~=bar] Selektiert Elemente, deren „foo“-Attribut das Wort „bar“ enthält (also beispielsweise „bar“ oder auch „bar quz“ aber nicht „barquz“) CSS2
[foo|=bar] Selektiert Elemente, deren „foo“-Attribut exakt die Zeichenfolge „bar“ ist oder mit der Zeichenfolge „bar-“ beginnt CSS2
[foo^=bar] Selektiert Elemente, deren „foo“-Attribut mit der Zeichenfolge „bar“ beginnt CSS3 Substring matching attribute selectors Teilübereinstimmungen
[foo$=bar] Selektiert Elemente, deren „foo“-Attribut mit der Zeichenfolge „bar“ endet CSS3
[foo*=bar] Selektiert Elemente, deren „foo“-Attribut die Zeichenfolge „bar“ enthält CSS3
Kombinatoren
E F Selektiert alle Elemente F, die Nachfahren eines Elements E sind CSS1 Descendant selectors Der Nachfahrenselektor
E > F Selektiert alle Elemente F, die ein Kind eines Elements E sind CSS2 Child selectors Der Kindselektor
E ~ F Selektiert alle Elemente F, die einen Vorgänger E auf gleicher Ebene haben CSS3 General sibling combinator Der Geschwisterselektor
E + F Selektiert alle Elemente F, die einen direkten Vorgänger E auf gleicher Ebene haben CSS2 Adjacent sibling combinator Der Nachbarselektor
Pseudoklassen
:link Selektiert unbesuchte Verweise CSS1 The link pseudo-classes Die Pseudoklassen :link und :visited
:visited Selektiert bereits besuchte Verweise CSS1
:active Selektiert das Element, das gerade angeklickt ist CSS1 The dynamic pseudo-classes Die Pseudoklassen :hover, :active und :focus
:hover Selektiert das Element, über dem sich der Mauszeiger befindet CSS2
:focus Selektiert das Element, das den Fokus (z. B. durch die Tabulatortaste) erhalten hat CSS2
:lang() Selektiert Elemente, deren Sprache über das Attribut „lang“ festgelegt wurde CSS2 The language pseudo-class Die Pseudoklasse :lang()
:target Selektiert das Element, das Ziel des gerade eben angeklickten Verweises ist CSS3 The target pseudo-class Die Pseudoklasse :target
:enabled Selektiert Elemente in Benutzeroberflächen, die auswählbar sind CSS3 The :enabled and :disabled pseudo-classes Die Pseudoklassen :enabled, :disabled und :checked
:disabled Selektiert Elemente in Benutzeroberflächen, die gesperrt sind CSS3
:checked Selektiert Elemente von Benutzeroberflächen, die angewählt sind CSS3 The :checked pseudo-class
:not(foo) Selektiert Elemente, für die „foo“ nicht zutrifft CSS3 The negation pseudo-class Die Pseudoklasse :not()
strukturelle Pseudoklassen
:first-child Selektiert Elemente, die das erste Kind ihres Elternelementes sind CSS2 :first-child pseudo-class Die Pseudoklasse :first-child
:last-child Selektiert Elemente, die das letzte Kind ihres Elternelementes sind CSS3 :last-child pseudo-class Die Pseudoklasse :last-child
:nth-child(...) Selektiert Elemente, die beispielsweise das n-te Kind ihres Elternelementes sind CSS3 :nth-child() pseudo-class Die Pseudoklasse :nth-child()
:nth-last-child(...) Selektiert Elemente, die beispielsweise das n-te Kind ihres Elternelementes sind, Zählung beginnt von hinten CSS3 :nth-last-child() pseudo-class Die Pseudoklasse :nth-last-child()
:only-child Selektiert Elemente, die das einzige Kind ihres Elternelementes sind CSS3 :only-child pseudo-class Die Pseudoklasse :only-child
:first-of-type Selektiert Elemente, die das erste Element dieses Typs ihres Elternelementes sind CSS3 :first-of-type pseudo-class Die Pseudoklasse :first-of-type
:last-of-type Selektiert Elemente, die das letzte Element dieses Typs ihres Elternelementes sind CSS3 :first-of-type pseudo-class Die Pseudoklasse :last-of-type
:nth-of-type(...) Selektiert Elemente, die beispielsweise das n-te Element dieses Typs ihres Elternelementes sind CSS3 :nth-of-type() pseudo-class Die Pseudoklasse :nth-of-type()
:nth-last-of-type(...) Selektiert Elemente, die beispielsweise das n-te Element dieses Typs ihres Elternelementes sind, Zählung beginnt von hinten CSS3 :nth-last-of-type() pseudo-class Die Pseudoklasse :nth-last-of-type()
:only-of-type Selektiert Elemente, die das einzige Element dieses Typs ihres Elternelementes sind CSS3 :only-of-type pseudo-class Die Pseudoklasse :only-of-type
:root Selektiert das Wurzelelement CSS3 :root pseudo-class Die Pseudoklasse :root
:empty Selektiert Elemente, die keine Kinder haben CSS3 :empty pseudo-class Die Pseudoklasse :empty
Pseudoelemente
::first-line Selektiert die erste Zeile des formatierten Textes CSS1 The ::first-line pseudo-element Das Pseudoelement ::first-line
::first-letter Selektiert das erste Zeichen des formatierten Textes CSS1 The ::first-letter pseudo-element Das Pseudoelement ::first-letter
foo::before Erzeugt und selektiert ein Element vor einem Element „foo“ CSS2 The ::before and ::after pseudo-elements Die Pseudoelemente ::before und ::after
foo::after Erzeugt und selektiert ein Element nach einem Element „foo“ CSS2

Beispiel[Bearbeiten]

Das CSS-Box-Modell

CSS:

p.info {
  font-family: arial, sans-serif;
  line-height: 150%;
  margin-left: 2em;
  padding: 1em;
  border: 3px solid red;
  background-color: #f89;
  display: inline-block;
}
p.info span {
  font-weight: bold;
}
p.info span::after {
  content: ": ";
}

HTML:

<p class="info">
  <span>Hinweis</span>
  Sie haben sich erfolgreich angemeldet.
</p>

Die p-Tags machen den dazwischen stehenden Text zu einem Absatz. Da ihm die Klasse „info“ zugewiesen wird, wird er von einem CSS-kompatiblen Browser wie folgt dargestellt:

Textabsatz, der so formatiert ist, wie obiges CSS es vorgibt.

Hier werden die Deklarationen allen p-Elementen zugewiesen, die das class-Attribut mit dem Wert info besitzen. Würde man das p im Selektor weglassen, würden alle Elemente der Klasse info betroffen sein, beim Weglassen des .info alle p-Elemente. span-Elemente innerhalb solcher Absätze werden in Fettschrift dargestellt; der Doppelpunkt wird als Pseudoelement erzeugt.

Ein wichtiges Prinzip von CSS ist die Vererbung der Eigenschaftswerte an untergeordnete Elemente und die Kombination verschiedener Stylesheets (Kaskadeneffekt). Diese können dabei aus verschiedenen Quellen stammen: vom Autor des Stylesheets, dem Browser (User Agent) oder dem Benutzer.

CSS-Hacks[Bearbeiten]

Eine Anwendung von CSS-Syntax bei der Gestaltung von Weblayouts sind sogenannte CSS-Hacks. Sie werden benutzt, um Unterschiede bei der Darstellung von Weblayouts in verschiedenen Browsern auszugleichen oder CSS-Anweisungen für bestimmte Webbrowser gesondert zuzuweisen oder auszuschließen. Der Begriff Hack bezeichnet dabei nichtstandardisierte CSS-Befehle, mit denen die Interpretationsschwäche eines Webbrowsers ausgenutzt wird, der diese Anweisungen entweder interpretiert oder ignoriert. Damit können Schwachstellen von Webbrowsern ausgeglichen werden, um möglichst in jedem Webbrowser das gleiche Ergebnis angezeigt zu bekommen.

Ein CSS-Hack kombiniert z. B. fehlerhaft angegebene Selektoren in Kombination mit zusätzlichen Zeichen oder enthält Anweisungen, die bestimmte Webbrowser nicht kennen. Ein bekanntes Beispiel für einen CSS-Hack ist der sogenannte Star-HTML-Hack. Das *-Zeichen dient als Universal-Selektor und ist vor dem Selektor html sinnlos.

CSS-Code-Beispiel:

p        { background-color: blue; }
* html p { background-color: red; }

In diesem Fall würden zunächst alle Browser die p-Elemente mit einem blauen Hintergrund darstellen. Lediglich der Internet Explorer vor Version 7 interpretiert auch die zweite Zeile und färbt die Absätze rot, obwohl <html> kein Eltern-Element besitzt, auf das * zutreffen könnte.

Kombination mit HTML oder XHTML[Bearbeiten]

Am häufigsten wird CSS mit HTML oder XHTML kombiniert. Dies kann an mehreren Orten geschehen, hier einige Beispiele:

  • Als externes Stylesheet für eine (X)HTML-Datei (link-Element)
   <link rel="stylesheet" type="text/css" href="beispiel.css" />
   <?xml-stylesheet type="text/css" href="beispiel.css" ?>
  • Als internes Stylesheet in einer (X)HTML-Datei (style-Element)
   <head>
      <title>Dokument mit Formatierungen</title>
      <style type="text/css">
             body { color: purple; background-color: #d8da3d; }
      </style>
   </head>
  • Innerhalb von (X)HTML-Tags (style-Attribut)
   <span style="font-size: small;">Text</span>

Die Einbindung als externes Stylesheet ist dabei die am häufigsten verwendete Methode. Sie bietet den Vorteil, dass für mehrere Dokumente, die denselben Regelsatz benutzen, das Stylesheet nur einmal heruntergeladen werden muss. Auch vermeidet man so sich wiederholenden Code. CSS selbst ermöglicht durch die @import-Regel das Einbinden von weiteren externen Stylesheets.

   <head>
      <title>Beispiel</title>
      <style type="text/css">
             @import url(url_des_stylesheets);
      </style>
   </head>

Es gibt drei Varianten Stylesheets mittels eines link-Elements einzubinden, die sich darin unterscheiden, wie zwingend die Stylesheets berücksichtigt werden:

Dauerhafte Stylesheets (persistent)
    <link rel="stylesheet" type="text/css" href="beispiel.css" />

Wenn man ein Stylesheet so einbindet, wird es auf jeden Fall verwendet.

Bevorzugte Stylesheets (preferred)
    <link rel="stylesheet" type="text/css" href="beispiel.css" title="IrgendeinTitel" />

Sollte man diese Einbindung verwenden, wird das Stylesheet verwendet, bis der Benutzer ein anderes auswählt.

Alternative Stylesheets (alternate)
    <link rel="alternate stylesheet" type="text/css" href="beispiel.css" title="IrgendeinTitel" />

Wird das Stylesheet so mit dem HTML-Dokument verknüpft, muss der Benutzer ausdrücklich wählen dieses zu verwenden. Das wirkt sich in den meisten Browsern aus (z. B. Internet Explorer, Firefox, Opera und Konqueror). Somit wird diese Funktion von den meist benutzten Browsern implementiert. Außerdem sollte ein "alternate stylesheet" nur in Verbindung mit einem anderen fest eingebundenen verwendet werden, damit es auch nur eine echte Alternative ist.

Medienspezifische Stylesheets[Bearbeiten]

Es ist auch möglich, für verschiedene Medien verschiedene Stylesheets einzubinden, um zum Beispiel die Gestaltung beim Drucken oder auf Handy-Displays zu regulieren. Diesen Zweck erfüllt das Attribut media. In dieses Attribut werden die Parameter notiert, die für dieses Stylesheet gelten sollen.

Parameter Bedeutung
all Stylesheet gilt für alle Ausgabegeräte
speech (CSS2: aural) aurale Ausgabegeräte (z. B. Screenreader)
braille Blindenschriftfähige Ausgabegeräte
embossed Blindenschriftfähige Drucker
handheld Handhelds (Palmtops, PDAs, WinCE-Geräte)
print Drucker
projection Video-Beamer, Overhead-Projektoren
screen Bildschirme
tty Ausgabegeräte mit feststehenden Zeichentypen (z. B. Fernschreiber, Terminals oder auch ältere Mobiltelefone)
tv TV-Geräte
@media print {
  body {
       color: black;
       background-color: white;
  }
  h1 {
       font-size: 14pt;
  }
  .navigation {
       display: none;
  }
}

Da viele moderne Smartphones den Typ handheld nicht unterstützen und stattdessen die Stilvorgaben von screen nutzen, ist man hier auf „Eigenschaftsspezifische Stylesheets“ (Media Queries) angewiesen.

Eigenschaftsspezifische Stylesheets (Media Queries)[Bearbeiten]

Bei Media Queries handelt es sich um ein Konzept, welches mit CSS3 eingeführt wurde und das Prinzip des Medientyps in CSS2 erweitert. Anstatt starr zu definieren, welches Medium das Zielmedium ist, können mit Media Queries die Eigenschaften des aktuellen Gerätes direkt abgefragt werden. Verfügbare Geräteeigenschaften sind zum Beispiel:

  • Breite und Höhe des Browserfensters
  • Breite und Höhe des Gerätes
  • Orientierung (Quer- oder Hochformat)
  • Bildschirmauflösung

Vor allem im Bereich der mobilen Webprogrammierung werden Media Queries bereits jetzt häufig eingesetzt, um die Webseite ideal an das aktuell verwendete Gerät anzupassen.

Im folgenden Beispiel werden Elemente mit CSS-Regeln versehen. Diese Regeln gelten für das gesamte Dokument. Anschließend wird eine Media Query eingesetzt, die greift, sobald die Breite des Browserfensters kleiner als 1025 Pixel ist. In diesem Fall ändern sich die Eigenschaften, die vorher allgemein definiert wurden bzw. gelten zusätzliche Eigenschaften.

#inhalt {
   width: 800px;
}
 
@media screen and (max-width: 1024px) {
   #inhalt {
      width: 600px;
   }
 
   aside {
      display: none;
   }
}

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  •  Ingo Chao, Corina Rudel: Fortgeschrittene CSS-Techniken. 3. Auflage. Galileo Computing, Bonn 2012, ISBN 978-3-8362-1695-1 (Detailreiche und anspruchsvolle Erklärung von CSS-Interna).
  •  Florence Maurice: CSS3: Die neuen Features für fortgeschrittene Webdesigner. dpunkt.verlag, München 2013, ISBN 978-3864901188 (Neuerungen in CSS3).
  •  Jens Meiert: Webdesign mit CSS. 2. Auflage. O’Reilly, 2007, ISBN 978-3-89721-712-6 (Methodik bei Arbeit mit CSS, Praxisbeispiele).
  •  Christopher Schmitt: CSS Kochbuch. 2. Auflage. O’Reilly, 2007, ISBN 978-3-89721-492-7 (Grundlagen und Beispiele zu CSS).

Weblinks[Bearbeiten]

 Wikibooks: Websiteentwicklung: CSS – Lern- und Lehrmaterialien

Einzelnachweise[Bearbeiten]

  1. SELFHTML, Kompendium zu HTML und CSS, deutsch
  2. [1]
  3. Cascading Style Sheets, level 2 revision 1 CSS2.1 Specification W3C Working Draft 2 August 2002. W3C. Abgerufen am 11. Oktober 2010.
  4. Cascading Style Sheets Standard Boasts Unprecedented Interoperability. W3C. Abgerufen am 7. Juni 2011.
  5. CSS3 introduction W3C Working Draft, 14. April 2000. W3C, abgerufen am 8. Juli 2010 (englisch).
  6. w3.org: CSS Current Work
  7. caniuse.com: Vergleich von CSS3-Unterstützung aktueller Browser, abgerufen am 10. Mai 2012
  8. Nicolai Schwarz: CSS4: So sieht die Zukunft des Webstandards aus. In: t3n Magazin. 5. September 2012, abgerufen am 21. November 2012.
  9. Tob Atkins: A Word About CSS4. 5. September 2012, abgerufen am 21. November 2012 (englisch).