CSS
Liczniki
Szukaj…
Składnia
licznik: [<nazwa_licznika> <integer>? ] + | Żaden
counter-reset: [<nazwa_licznika> <integer>? ] + | Żaden
przeciwwzrost: [<nazwa_licznika> <integer>? ] + | Żaden
counter (<nazwa licznika> [, <styl licznika>]?)
liczniki (<nazwa licznika>, <łańcuch łączący> [, <styl licznika>]?)
Parametry
Parametr | Detale |
---|---|
przeciwna nazwa | Jest to nazwa licznika, który należy utworzyć, zwiększyć lub wydrukować. Może to być dowolna nazwa niestandardowa, zgodnie z życzeniem dewelopera. |
liczba całkowita | Ta liczba całkowita jest wartością opcjonalną, która podana obok nazwy licznika będzie reprezentować wartość początkową licznika (w counter-set counter-reset właściwości counter-reset ) lub wartość, o którą licznik powinien być zwiększany (w counter-increment ). |
Żaden | Jest to wartość początkowa dla wszystkich 3 właściwości counter-* . Gdy ta wartość jest używana do counter-increment , nie ma to wpływu na wartość żadnego z liczników. Gdy jest to używane dla pozostałych dwóch, licznik nie jest tworzony. |
przeciwny styl | Określa styl, w którym wartość licznika musi być wyświetlana. Obsługuje wszystkie wartości obsługiwane przez właściwość list-style-type . Jeśli none zostanie użyta none wartość licznika nie zostanie w ogóle wydrukowana. |
łącznik-ciąg | Reprezentuje ciąg, który należy umieścić między wartościami dwóch różnych poziomów licznika (jak „.” W „2.1.1”). |
Uwagi
Liczniki nie są nowym tematem w CSS. Była to część specyfikacji CSS poziomu 2 (a dokładniej wersja 1), a zatem ma bardzo wysoką obsługę przeglądarki.
Wszystkie przeglądarki oprócz IE6 i IE7 mają obsługę liczników CSS.
Zastosowanie stylizacji cyfr rzymskich do wyjścia licznika
CSS
body {
counter-reset: item-counter;
}
.item {
counter-increment: item-counter;
}
.item:before {
content: counter(item-counter, upper-roman) ". "; /* by specifying the upper-roman as style the output would be in roman numbers */
}
HTML
<div class='item'>Item No: 1</div>
<div class='item'>Item No: 2</div>
<div class='item'>Item No: 3</div>
W powyższym przykładzie dane wyjściowe licznika byłyby wyświetlane jako I, II, III (liczby rzymskie) zamiast zwykłych 1, 2, 3, ponieważ programista wyraźnie określił styl licznika.
Numeruj każdy element za pomocą licznika CSS
CSS
body {
counter-reset: item-counter; /* create the counter */
}
.item {
counter-increment: item-counter; /* increment the counter every time an element with class "item" is encountered */
}
.item-header:before {
content: counter(item-counter) ". "; /* print the value of the counter before the header and append a "." to it */
}
/* just for demo */
.item {
border: 1px solid;
height: 100px;
margin-bottom: 10px;
}
.item-header {
border-bottom: 1px solid;
height: 40px;
line-height: 40px;
padding: 5px;
}
.item-content {
padding: 8px;
}
HTML
<div class='item'>
<div class='item-header'>Item 1 Header</div>
<div class='item-content'>Lorem Ipsum Dolor Sit Amet....</div>
</div>
<div class='item'>
<div class='item-header'>Item 2 Header</div>
<div class='item-content'>Lorem Ipsum Dolor Sit Amet....</div>
</div>
<div class='item'>
<div class='item-header'>Item 3 Header</div>
<div class='item-content'>Lorem Ipsum Dolor Sit Amet....</div>
</div>
Powyższy przykład numeruje każdy „element” na stronie i dodaje numer elementu przed jego nagłówkiem (używając właściwości content
elementu .item-header
:before
pseudo). Wersja demonstracyjna tego kodu jest dostępna tutaj .
Implementacja numeracji wielopoziomowej przy użyciu liczników CSS
CSS
ul {
list-style: none;
counter-reset: list-item-number; /* self nesting counter as name is same for all levels */
}
li {
counter-increment: list-item-number;
}
li:before {
content: counters(list-item-number, ".") " "; /* usage of counters() function means value of counters at all higher levels are combined before printing */
}
HTML
<ul>
<li>Level 1
<ul>
<li>Level 1.1
<ul>
<li>Level 1.1.1</li>
</ul>
</li>
</ul>
</li>
<li>Level 2
<ul>
<li>Level 2.1
<ul>
<li>Level 2.1.1</li>
<li>Level 2.1.2</li>
</ul>
</li>
</ul>
</li>
<li>Level 3</li>
</ul>
Powyżej jest przykładem numeracji wielopoziomowej przy użyciu liczników CSS. Wykorzystuje koncepcję samozakleszczania liczników. Własne zagnieżdżanie to koncepcja, w której jeśli element ma już licznik o podanej nazwie, ale musi utworzyć inny, wówczas tworzy go jako element potomny istniejącego licznika. Tutaj drugi poziom ul
dziedziczy już licznik list-item-number
z list-item-number
nadrzędnej, ale następnie musi utworzyć swój własny list-item-number
(dla swoich potomnych li
) i w ten sposób tworzy list-item-number[1]
(licznik dla drugi poziom) i zagnieżdża go pod list-item-number[0]
(licznik dla pierwszego poziomu). W ten sposób osiąga numerację wielopoziomową.
Dane wyjściowe są drukowane przy użyciu funkcji counters()
zamiast funkcji counter()
ponieważ funkcja counters()
ma na celu prefiksowanie wartości wszystkich liczników wyższego poziomu (macierzystych) podczas drukowania wyniku.