Поиск…


Синтаксис

  • counter-set: [<counter-name> <integer>? ] + | никто

  • counter-reset: [<counter-name> <integer>? ] + | никто

  • counter-increment: [<counter-name> <integer>? ] + | никто

  • counter (<counter-name> [, <counter-style>]?)

  • счетчики (<counter-name>, <connector-string> [, <counter-style>]?)

параметры

параметр подробности
Счетчик-имя Это имя счетчика, который необходимо создать или увеличить или распечатать. Это может быть любое пользовательское имя, которое желает разработчик.
целое число Это целое число является необязательным значением, которое при представлении рядом с именем счетчика будет представлять начальное значение счетчика (в параметрах counter-set , свойства counter-reset ) или значение, по которому счетчик должен увеличиваться (в counter-increment ).
никто Это начальное значение для всех 3 counter-* свойств. Когда это значение используется для counter-increment , это влияет на значение ни одного из счетчиков. Когда это используется для двух других, счетчик не создается.
счетчик стиле Это указывает стиль, в котором должно отображаться значение счетчика. Он поддерживает все значения, поддерживаемые свойством list-style-type . Если none не используется, значение счетчика вообще не печатается.
Соединитель-строка Это представляет строку, которая должна быть помещена между значениями двух разных уровней счетчика (например, «.» В «2.1.1»).

замечания

Счетчики не являются новой темой в CSS. Он был частью спецификаций уровня CSS (2), и, следовательно, имеет очень высокую поддержку браузера.

Все браузеры, кроме IE6 и IE7, поддерживают CSS-счетчики.

Применение стилей римских цифр к выходу счетчика

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>

В приведенном выше примере вывод счетчика будет отображаться как I, II, III (римские числа) вместо обычных 1, 2, 3, поскольку разработчик явно указал стиль счетчика.

Количество каждого элемента с помощью счетчика 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>

В приведенном выше примере номера каждого элемента отображаются на странице и добавляется номер элемента перед его заголовком (с использованием свойства content элемента .item-header :before псевдо). Живая демонстрация этого кода доступна здесь .

Внедрение многоуровневой нумерации с помощью счетчиков 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>

Вышеприведенный пример многоуровневой нумерации с использованием счетчиков CSS. Он использует самонастраивающуюся концепцию счетчиков. Self nesting - это понятие, в котором, если элемент уже имеет счетчик с заданным именем, но ему необходимо создать другое, он создает его как дочерний элемент существующего счетчика. Здесь второй уровень ul уже наследует счетчик list-item-number из его родительского list-item-number но затем должен создать свой собственный номер list-item-number (для его дочерних list-item-number li ) и поэтому создает номер list-item-number[1] (счетчик для второй уровень) и устанавливает его под list-item-number[0] (счетчик для первого уровня). Таким образом, он достигает многоуровневой нумерации.

Выход выводится с использованием функции counters() вместо функции counter() потому что функция counters() предназначена для префикса значения всех счетчиков более высокого уровня (родительского) при печати результата.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow