Websiteentwicklung: CSS: Syntax

Aus Wikibooks
Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu Einbau in HTML/XML | One wikibook.svg Hoch zu CSS | Wikibooks buchseite.svg Vor zu Box-Modell


Inhaltsverzeichnis

[Bearbeiten] Eigenschaften und Werte

Eine CSS-Eigenschaft (property) bestimmt, was in der Darstellung angepasst werden soll. Ein Wert (value) zu einer Eigenschaft bestimmt wie etwas in der Darstellung angepasst werden soll. Für eine Eigenschaft muss immer mindestens ein Wert angegeben werden. Viele Eigenschaften lassen sich über den Wert inherit vererben. Siehe dazu das Kapitel Kaskadierung, Spezifität und Vererbung.

Attention green.svg

Unterstützung von inherit im Internet Explorer
Der Internet Explorer bis Version 7 unterstützt den Wert inherit nur für die Eigenschaften direction und visibility.

[Bearbeiten] Selektoren

Ein Selektor hat die Aufgabe, das gewünschte Element auszuwählen (selektieren). Die zu einem Selektor passende CSS-Notation sieht wie folgt aus:

Selektor { Eigenschaft: Wert }

Leerzeichen sind optional. Werden mehrere Eigenschaften notiert, so sind diese mit Semikolon zu trennen. Ein Leerzeichen als Eigenschaft hat keine Wirkung. Also sind folgende Notationen gleichwertig:

Selektor { Eigenschaft1: Wert1; Eigenschaft2: Wert2 }
Selektor { Eigenschaft1: Wert1; Eigenschaft2: Wert2; }
Selektor {Eigenschaft1: Wert1 ;   Eigenschaft2:  Wert2  }
Selektor 
{ 
  Eigenschaft1: Wert1 ;   
  Eigenschaft2: Wert2
}
Selektor 
{ 
  Eigenschaft1: Wert1 ;   
  Eigenschaft2: Wert2;
}


[Bearbeiten] Element-Selektoren

Die einfachste Variante ist der Element-Selektor. Hierbei werden alle Elemente mit gleichem Elementnamen ausgewählt.

p { color: blue; }

Diese Definition spricht alle p-Elemente in einem Dokument an. Für diese wird die aktuelle Farbe als blau festgelegt, was unter anderem dazu führt, dass der darin notierte Text blau dargestellt wird.

[Bearbeiten] Eindeutige Kennzeichnung

Um ein einzelnes, bestimmtes Element zu formatieren, kann dieses mit einem Fragmentidentifizierer (bei (X)HTML und SVG zum Beispiel mit dem Attribut id) versehen und anhand dessen ausgewählt werden. Eine id-Attributwert darf nur einmal pro Dokument vorkommen und darf nicht mit einer Zahl beginnen. In Bezug zu CSS eignen sie sich daher gut, um Bestandteile eines Dokumentes zu kennzeichnen, welche nur einmal auftreten. Beispielhaft ist die typische Verwendung zur Untergliederung eines Dokumentes in Kopf-, Haupt- sowie Fußbereich. Es ist hilfreich, den Wert als erklärenden Namen zu notieren.

Der Wert des Fragmentidentifizierers wird in CSS mit einer vorangehenden Raute (#) gekennzeichnet, gefolgt vom Wert. Ist der Wert ID, folglich

#ID { Eigenschaft: Wert}

Um ein bestimmtes Element zu kennzeichnen wird also etwa im (X)HTML-Quelltext das id-Attribut gesetzt:

<p id="einleitung">Hier erscheint die Einleitung zu einem langen Text.</p>

…und anschließend mit CSS ausgewählt:

#einleitung { color: blue}

[Bearbeiten] Klassen

Möchte man mehrere, jedoch nicht alle Elemente gleichartig formatieren, bietet sich die Nutzung einer Klasse an. Eine Klasse kann im Gegensatz zu einem Fragmentidentifizierer mehrfach in einem (X)HTML-Dokument oder SVG-Dokument angegeben werden. Dies ist hilfreich, um immer wiederkehrende Formatierungen anzuwenden, ohne diese auf alle gleichartigen Elemente auszudehnen.

Klassen werden in CSS durch einen Punkt (.) gekennzeichnet, gefolgt vom Klassennamen

.Klasse { Eigenschaft: Wert; }

Um ein (X)HTML-Element oder SVG-Element mit einer Klasse zu versehen, wird das class-Attribut genutzt:

<p>Ein "normaler" Absatz.</p>
<p class="farbig_hervorgehoben">Ein optisch hervorgehobener Absatz.</p>
<p>Ein "normaler" Absatz.</p>
<p class="farbig_hervorgehoben">Ein optisch hervorgehobener Absatz.</p>
<p>Ein "normaler" Absatz.</p>

…und via CSS selektiert:

p { color: black}
.farbig_hervorgehoben { color: blue}

Diese Regeln weisen allen Absätzen (p-Elementen) die schwarze Textfarbe zu, jedoch werden alle Absätze mit der Klasse farbig_hervorgehoben mit blauer Textfarbe dargestellt.

Elemente können mehreren Klassen angehören. Dies wird dann im Attribut class als eine mit Leerzeichen separierte Liste notiert. Die Klassen können dann einzeln angesprochen werden:

<p>Ein "normaler" Absatz.</p>
<p class="optisch hervorgehoben">Ein optisch hervorgehobener Absatz.</p>
<p>Ein "normaler" Absatz.</p>
<p class="optisch Absatz">Ein optisch hervorgehobener Absatz.</p>
<p>Ein "normaler" Absatz.</p>
p { color: black}
.optisch { color: #f00}
.Absatz { font-style: italic}
.optisch.hervorgehoben {font-size:1.2em}
.optisch.Absatz {font-variant:small-caps}

[Bearbeiten] Universal-Selektor

Der Universal-Selektor wählt alle Elemente aus. Er wird in CSS durch einen Stern (*) gekennzeichnet.

* { color: blue}

Dies weist allen Elementen eine blaue Farbe zu.

[Bearbeiten] Attribut-Selektoren

Elemente können auch anhand anderer Attribute als id oder class ausgewählt werden. Dazu dienen die Attribut-Selektoren, welche in eckige Klammern gefasst werden.

[href] – Attributname
Wählt alle Elemente aus, welche ein Attribut href im Quelltext zugewiesen bekommen haben, unabhängig vom Wert des Attributs.
[type="submit"] – Zuweisungs-Operator
Dieser Attributselektor wählt alle Elemente aus, die einen bestimmten Wert im Attribut haben. In diesem Fall also alle Absende-Knöpfe oder allgemeiner Elemente mit der Attributangabe type="submit".
Auf diese Weise könnte auch ein Element mit einem id-Attribut ausgewählt werden: [id="einleitung"]. Dieser Selektor unterscheidet sich jedoch erheblich von #einleitung, welcher das selbe Element auswählt, da beide Selektoren eine unterschiedliche Spezifität aufweisen. Da nicht jede Sprache Fragmentidentifizierer haben muss, stellt dies jedoch eine immer funktionierende Variante dar.
[class~="warning"] – Operator für Liste
Dies wählt alle Elemente aus, in denen "warning" als Bestandteil einer mit Leerzeichen getrennten Liste vorkommt. Also zum Beispiel <p class="important warning"> oder <p class="warning highlight">, aber nicht <p class="my-warning">.
[lang|="de"] – Operator für Werte mit Bindestrich
Dies wählt alle Elemente aus, deren Attribut lang mit "de" beginnt, gefolgt von einem Bindestrich und einem beliebigem Teil, also zum Beispiel <p lang="de-DE"> oder <p lang="de-CH">.

Mit CSS3 wurden drei weitere Operatoren eingeführt:

[href^="http"] – Operator für Wertbeginn
Dies wählt alle Elemente aus, deren Attribut href mit "http" beginnt, also alle externen Verweise einer Seite.
[src$=".png"] – Operator für Wertende
Dies wählt alle Elemente aus, deren Attribut src auf ".png" endet, also alle Grafiken, welche ein PNG einbinden.
[class*="warn"] – Operator für Wert, die diese Zeichenkette enthalten
Dies wählt alle Elemente aus, deren Attribut class die Zeichenkette "warn" enthalten, also zum Beispiel <p class="my-warning"> oder <p class="warnings">.

[Bearbeiten] Pseudo-Klassen und Pseudo-Elemente

CSS kann darüber hinaus bestimmte Bereiche eines Dokuments dynamisch gestalten, ohne dass dafür eine Änderung im Quelltext des Dokuments erfolgen muss. Hierzu existieren die Konzepte der Pseudo-Klassen und Pseudo-Elemente, welche in einem eigenen Kapitel näher betrachet werden.

Pseudo-Klassen und Pseudo-Elemente werden in CSS mit einem Doppelpunkt (:) gekennzeichnet. Ab CSS3 werden Pseudo-Elemente zur besseren Unterscheidung durch einen doppelten Doppelpunkt (::) gekennzeichnet.

Beispiele (zur Erläuterung siehe Kapitel Pseudo-Klassen und Pseudo-Elemente):

p:first-child { color: blue }
p::before { content: '► '}

[Bearbeiten] Gruppierung von Selektoren

Alle möglichen Selektoren können gruppiert werden, um eine Eigenschaft bei mehreren Elementen anzuwenden. Dazu werden die einzelnen Selektoren mit einem Komma (und optionalen Leerzeichen) getrennt notiert.

h1, h2, h3, h4, h5, h6, legend {font-weight: bold}

[Bearbeiten] Kombination von Selektoren

Die Beziehungen der HTML-Elemente untereinander

CSS-Selektoren können kombiniert werden, um die Auswahl der Elemente weiter zu begrenzen. Die Leserichtung der Verschachtelung erfolgt dabei von links nach rechts. Die Auswertung durch den Parser (im Browser) jedoch von rechts nach links. Selektoren sollten so allgemein wie möglich gehalten werden, um die Auswertung durch den Browser zu beschleunigen.

[Bearbeiten] Nachfahren

Hiermit wird ein Element ausgewählt, das sich innerhalb eines anderen befindet.

<p class="farbig">
  Textabsatz Nummer eins, welcher eine <strong>Betonung</strong> enthält
</p>
<p>
  Textabsatz Nummer zwei, welcher eine <strong>Betonung</strong> enthält
</p>
<blockquote class="farbig">Ein Zitat</blockquote>

CSS-Beispiele

p.farbig {
  color: blue;  /* die färbt nur den ersten Absatz blau */
}
.farbig strong {
  color: red;  /* die färbt nur die Betonung im ersten Absatz rot */
}

[Bearbeiten] Kinder

[Bearbeiten] Geschwister, direkt nachfolgend

[Bearbeiten] Geschwister, alle

[Bearbeiten] Kommentare

Selbstverständlich sollten Sie sich die Zeit nehmen, Ihre Definitionen zu kommentieren. Der Nächste, der Ihre CSS-Datei bearbeiten muss, wird es Ihnen danken.

Kommentare beginnen immer mit einem Schrägstrich gefolgt von einem Stern und enden mit den gleichen Zeichen in umgekehrter Reihenfolge:

Syntax

/* Kommentar */

[Bearbeiten] ToDo


Qsicon inArbeit.png
todo
Folgende Teile fehlen hier noch:
  • Media-Queries
  • import-Anweisungen



Wikibooks buchseite.svg Zurück zu Einbau in HTML/XML | One wikibook.svg Hoch zu CSS | Wikibooks buchseite.svg Vor zu Box-Modell
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Mitmachen
Werkzeuge
Drucken/exportieren