Anzeige von Elementen
Tabellen
Generierter Content
- Die Darstellung von Dokumenten beinhaltet hin und wieder nicht direkt im Dokument auftretende Inhalte, wie zum Beispiel automatische Nummerierung bei geordneten Listen
ol
oder Anführungszeichen bei Zitaten mitq
. Auch CSS bietet die Möglichkeit, Inhalte bei der Darstellung hinzuzufügen. Die auf dieser Seite vorgestellten Eigenschaften werden zur Zeit von kaum einem Browser interpretiert. Counter funktionieren derzeit nur in aktuellen Opera-Browsern.
:before
und:after
-
:before
und:after
sind so genannte Pseudo-Elemente, mit denen Sie zusätzlichen Content vor oder nach einem Element generieren können. Die zur Erläuterung der Eigenschaftcontent
aufgeführten Beispiele machen das deutlich. content
-
Sie können die Eigenschaft
content
zusammen mit den Pseudo-Elementen:before
und:after
verwenden, um zusätzliche Inhalte einzufügen.- <Zeichenkette>
- Die in Anführungszeichen aufgeführte Zeichenkette wird eingefügt. Als Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>Generierter Content - Anfügen von Zeichenketten</title> <style type="text/css"> p:before { content: "ANFANG - "; } p:after { content: " - ENDE"; } </style> </head> <body> <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p> </body> </html>
- <URI>
- Ein Bild oder eine andere Ressource wird eingefügt.
- <Zähler>
attr(x)
- Der Wert des Attributes x wird dargestellt. Dazu ein Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>Generierter Content - Auslesen von Attributwerten</title> <style type="text/css"> p:before { content: attr(title)": "; display: block; font-weight: bold; } </style> </head> <body> <p title="Erster Abschnitt">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> <p title="Zweiter Abschnitt">Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p> </body> </html>
Hierbei wird zunächst der Inhalt des
title
-Attributes ausgelesen und dargestellt. Dem folgt eine Zeichenkette. Beides zusammen wird vor alle Elementep
gesetzt. An diesem Beispiel können Sie sehen, dass auch andere Eigenschaften auf ein Pseudo-Element wie:before
angewendet werden können. open-quote
- Es werden öffnende Anführungszeichen eingefügt.
close-quote
- Es werden schließende Anführungszeichen eingefügt.
no-open-quote
- Öffnende Anführungszeichen werden unterdrückt.
no-close-quote
- Schließende Anführungszeichen werden unterdrückt.
inherit
Der Initialwert ist eine leere Zeichenkette.
quotes
-
Mit der Eigenschaft
quotes
bestimmen Sie die Art der dargestellten Anführungszeichen.- <Zeichenkette> <Zeichenkette>
- Gibt das öffnende und das schließende Anführungszeichen an. Es können beliebig viele Paare angegeben werden, wobei das erste Paar die äußeren Anführungszeichen angibt, das zweite die erste Verschachtelungsebene und so weiter.
none
inherit
Der Initialwert ist abhängig vom User-Agent.
- Typographie für Webautoren - Automatische Anführungszeichen
Christoph Päper beschreibt auf seiner Seite unter anderem die richtige Anwendung von Anführungszeichen. Ein auch ansonsten sehr lesenswerter Artikel.
Zähler
Zähler werden in CSS durch die Eigenschaften counter-reset
und counter-increment
bestimmt. Ich stelle Ihnen die Eigenschaften und ihre möglichen Werte zunächst vor und werde sie dann anhand von Beispielen erläutern.
counter-increment
counter-reset
Folgendes Beispiel demonstriert das Durchzählen einer Hierarchie von Überschriften:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Counter</title>
<style type="text/css">
h1:before {
content: counter(abschnitt) " ";
counter-increment: abschnitt;
counter-reset: unterabschnitt;
}
h2:before {
content: counter(abschnitt) "." counter(unterabschnitt) " ";
counter-increment: unterabschnitt;
}
</style>
</head>
<body>
<h1>Abschnitt</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat volutpat.</p>
<h2>Unterabschnitt</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat volutpat.</p>
<h2>Unterabschnitt</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat volutpat.</p>
<h1>Abschnitt</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat volutpat.</p>
<h2>Unterabschnitt</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat volutpat.</p>
</body>
</html>
Zunächst wird durch die Deklaration
content: counter(abschnitt) " ";
angegeben, dass vor Überschriften erster Ordnung ein Zähler mit Namen »abschnitt« dargestellt werden soll. Dem Zähler soll eine Zeichenkette in Form eines Leerzeichens folgen. Die Deklaration
counter-increment: abschnitt;
gibt den Zählschritt für den Zähler »abschnitt« an. Da in diesem Fall kein Zählschritt explizit angegeben wurde, gilt standardmäßig der Zählschritt 1. Die Deklaration ist dennoch notwendig, da sonst überhaupt nicht hochgezählt werden würde. Die Deklaration
counter-reset: unterabschnitt;
setzt einen Zähler mit dem Namen »unterabschnitt« bei Auftreten einer Überschrift erster Ordnung auf 0 zurück. Die Regel
h2:before {
content: counter(abschnitt) "." counter(unterabschnitt) " ";
counter-increment: unterabschnitt;
}
gibt zwei Zähler für alle Überschriften zweiter Ordnung an: Den bereits bekannten Zähler mit Namen »abschnitt« und einen neuen Zähler »unterabschnitt«. Die Zähler werden durch einen Punkt getrennt. Am Ende folgt wieder ein Leerzeichen. Als zweites wird der Zählschritt wie oben definiert.
In folgendem Beispiel werden verschachtelte, geordnete Listen nummeriert:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Counter - Zweites Beispiel</title>
<style type="text/css">
ol {
counter-reset: zaehler;
list-style-type: none;
}
li:before {
content: counters(zaehler, ".");
counter-increment: zaehler;
margin-right: .5em;
}
</style>
</head>
<body>
<ol>
<li>Erster Punkt</li>
<li>Zweiter Punkt</li>
<li>Dritter Punkt
<ol>
<li>Erster Unterpunkt</li>
<li>Zweiter Unterpunkt
<ol>
<li>Erster Unterpunkt</li>
<li>Zweiter Unterpunkt</li>
<li>Dritter Unterpunkt</li>
</ol>
</li>
<li>Dritter Unterpunkt
<ol>
<li>Erster Unterpunkt</li>
<li>Zweiter Unterpunkt</li>
<li>Dritter Unterpunkt</li>
</ol>
</li>
<li>Vierter Unterpunkt</li>
<li>Fünfter Unterpunkt</li>
</ol>
</li>
<li>Vierter Punkt</li>
</ol>
</body>
</html>
Das Beispiel nutzt die Tatsache, dass in Kindelementen automatisch eine neue Instanz des Zählers angelegt wird. Die Funktion counters(zaehler, ",")
generiert eine Zeichenkette, die die Werte aller Zähler enthält, getrennt durch eine vorgegebene Zeichenkette, in diesem Fall ein Komma.