counters()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Die counters() CSS Funktion ermöglicht das Kombinieren von Markierungen beim Verschachteln von Zählern. Die Funktion gibt einen String zurück, der die aktuellen Werte der benannten und verschachtelten Zähler, falls vorhanden, mit dem bereitgestellten String verknüpft. Der dritte, optionale Parameter ermöglicht das Definieren des Listenstils.
Die Funktion counters() wird allgemein innerhalb von Pseudoelementen durch die content Eigenschaft verwendet, kann theoretisch aber überall dort eingesetzt werden, wo ein <string> Wert unterstützt wird.
Die counters() Funktion hat zwei Formen: counters(<name>, <string>) und counters(<name>, <string>, <style>). Der generierte Text ist der Wert aller Zähler mit dem angegebenen <name>, angeordnet von außen nach innen und getrennt durch den angegebenen <string>. Die Zähler werden in dem angegebenen <style> dargestellt, wobei decimal als Standardstil gesetzt wird, wenn kein <style> angegeben wird.
Probieren Sie es aus
ol {
counter-reset: index;
list-style-type: none;
}
li::before {
counter-increment: index;
content: counters(index, ".", decimal) " ";
}
<ol>
<li>Mars</li>
<li>
Saturn
<ol>
<li>Mimas</li>
<li>Enceladus</li>
<li>
<ol>
<li>Voyager</li>
<li>Cassini</li>
</ol>
</li>
<li>Tethys</li>
</ol>
</li>
<li>
Uranus
<ol>
<li>Titania</li>
</ol>
</li>
</ol>
Syntax
/* Basic usage - style defaults to decimal */
counters(counter-name, '.');
/* changing the counter display */
counters(counter-name, '-', upper-roman)
Ein Zähler hat allein keine sichtbare Wirkung. Die counters() Funktion (und die counter() Funktion) macht ihn nützlich, indem sie entwicklerdefinierten Inhalt zurückgibt.
Werte
Die counters() Funktion akzeptiert zwei oder drei Parameter. Der erste Parameter ist der <counter-name>. Der zweite Parameter ist der Verknüpfungs-<string>. Der optionale dritte Parameter ist der <counter-style>.
<counter-name>-
Ein
<custom-ident>, der die Zähler identifiziert, derselbe Fall-sensitive Name, der für diecounter-resetundcounter-incrementEigenschaften verwendet wird. Der Name kann nicht mit zwei Bindestrichen beginnen und darf nichtnone,unset,initialoderinheritsein. Alternativ können für inline, einmalige Zähler diesymbols()Funktion anstelle eines benannten Zählers in Browsers, diesymbols()unterstützen, verwendet werden. <string>-
Beliebige Anzahl von Textzeichen. Nicht-lateinische Zeichen müssen mit ihren Unicode-Escape-Sequenzen codiert werden: Zum Beispiel steht
\000A9für das Copyright-Symbol. <counter-style>-
Ein Zählerstilname oder eine
symbols()Funktion. Der Zählerstilname kann ein vordefinierter Stil wie numerisch, alphabetisch oder symbolisch, ein komplexer langhandiger vordefinierter Stil wie Ostasiatisch oder Äthiopisch, oder ein anderer vordefinierter Zählerstil sein. Wenn ausgelassen, wird der Zählerstil auf decimal gesetzt.
Der Rückgabewert ist ein String, der alle Werte aller Zähler im CSS-Zählermengen-Element mit dem Namen <counter-name> im Zählerstil <counter-style> (oder decimal, falls ausgelassen) enthält. Der Rückgabestring ist von außen nach innen sortiert und wird durch den angegebenen <string> verbunden.
Hinweis:
Für Informationen über nicht verknüpfte Zähler, siehe die counter() Funktion, die <string> als Parameter auslässt.
Formale Syntax
<counters()> =
counters( <counter-name> , <string> , <counter-style>? )
<counter-style> =
<counter-style-name> |
<symbols()>
<symbols()> =
symbols( <symbols-type>? [ <string> | <image> ]+ )
<symbols-type> =
cyclic |
numeric |
alphabetic |
symbolic |
fixed
<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>
<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )
<image-set()> =
image-set( <image-set-option># )
<cross-fade()> =
cross-fade( <cf-image># )
<element()> =
element( <id-selector> )
<image-tags> =
ltr |
rtl
<image-src> =
<url> |
<string>
<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?
<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?
<id-selector> =
<hash-token>
Beispiele
>Vergleich des Standardzählwerts mit römischen Ziffern in Großbuchstaben
Dieses Beispiel enthält zwei counters() Funktionen: eine mit eingestellt <counter-style> und die andere als Standardeinstellung decimal.
HTML
<ol>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
<li></li>
<li></li>
<li>
<ol>
<li></li>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
CSS
ol {
counter-reset: listCounter;
}
li {
counter-increment: listCounter;
}
li::marker {
content:
counters(listCounter, ".", upper-roman) ") ";
}
li::before {
content:
counters(listCounter, ".") " == "
counters(listCounter, ".", lower-roman);
}
Ergebnis
Vergleich des Zählwerts mit führender Null mit Kleinbuchstaben
Dieses Beispiel enthält drei counters() Funktionen, jede mit unterschiedlichen <string> und <counter-style> Werten.
HTML
<ol>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
<li></li>
<li></li>
<li>
<ol>
<li></li>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
CSS
ol {
counter-reset: count;
}
li {
counter-increment: count;
}
li::marker {
content:
counters(count, "-", decimal-leading-zero) ") ";
}
li::before {
content:
counters(count, "~", upper-alpha) " == "
counters(count, "*", lower-alpha);
}
Ergebnis
Spezifikationen
| Specification |
|---|
| CSS Lists and Counters Module Level 3> # counter-functions> |
| CSS Counter Styles Level 3> # extending-css2> |
Browser-Kompatibilität
Siehe auch
- Verwendung von CSS-Zählern
counter-setEigenschaftcounter-resetEigenschaftcounter-incrementEigenschaft@counter-styleAt-Regel- CSS
counter()Funktion ::markerPseudoelement- CSS Listen und Zähler Modul
- CSS Zählerstile Modul
- CSS generierter Inhalt Modul