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 die Definition des Listenstils.
Die counters()-Funktion wird im Allgemeinen innerhalb von Pseudoelementen über die content-Eigenschaft verwendet, kann jedoch theoretisch überall dort benutzt 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>, von außen nach innen angeordnet und durch den angegebenen <string> getrennt. Die Zähler werden im angegebenen <style> dargestellt, standardmäßig decimal, falls kein <style> angegeben ist.
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 vom Entwickler definierten Inhalt zurückgibt.
Werte
Die counters()-Funktion akzeptiert zwei oder drei Parameter. Der erste Parameter ist der <counter-name>. Der zweite Parameter ist der verkettende <string>. Der optionale dritte Parameter ist der <counter-style>.
<counter-name>-
Ein
<custom-ident>zur Identifizierung der Zähler, derselbe groß- und kleinschreibungssensitive Name wie für diecounter-resetundcounter-increment-Eigenschaften. Der Name darf nicht mit zwei Bindestrichen beginnen und kann nichtnone,unset,initialoderinheritsein. Alternativ kann für Inline-Zähler, die nur einmal verwendet werden, diesymbols()-Funktion anstelle eines benannten Zählers in Browsern, diesymbols()unterstützen, verwendet werden. <string>-
Beliebige Anzahl von Textzeichen. Nicht-lateinische Zeichen müssen mit ihren Unicode-Escape-Sequenzen kodiert werden: zum Beispiel stellt
\000A9das Copyright-Symbol dar. <counter-style>-
Ein Zählerstilname oder eine
symbols()-Funktion. Der Zählerstilname kann ein vordefinierter Stil wie numerisch, alphabetisch oder symbolisch sein, ein komplexer ausgeschriebener vordefinierter Stil wie Ostasiatisch oder Äthiopisch, oder ein anderer vordefinierter Zählerstil. Wird er weggelassen, ist der Zählerstil standardmäßig auf Dezimal eingestellt.
Der Rückgabewert ist ein String, der alle Werte aller Zähler im CSS-Zählermengenset des Elements mit dem Namen <counter-name> im durch <counter-style> definierten Zählerstil (oder dezimal, falls weggelassen) enthält. Der Rückgabestring ist in der Reihenfolge von außen nach innen sortiert und wird durch den angegebenen <string> verbunden.
Hinweis:
Für Informationen über nicht verkettete Zähler, siehe die counter()-Funktion, die den <string> als Parameter weglä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ählerwerts mit römischen Zahlen in Großbuchstaben
Dieses Beispiel enthält zwei counters()-Funktionen: eine mit gesetzt <counter-style> und die andere mit Standardwert 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 von Dezimalwert 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
Loading…
Siehe auch
- Verwendung von CSS-Zählern
counter-set-Eigenschaftcounter-reset-Eigenschaftcounter-increment-Eigenschaft@counter-style-Regel- CSS
counter()-Funktion ::marker-Pseudoelement- CSS-Listen und -Zähler-Modul
- CSS-Zählerstile-Modul
- CSS-generierter Inhalt-Modul