Открыть меню    

Стили для нумерации CSS

При необходимости нумерации чего-либо на сайте чаще всего используют упорядоченный список (<ol>). Резонно ожидать, что может возникнуть желание поработать над дизайном этих чисел. В СSS, однако, реализовать это желание довольно проблематично, но, к счастью, не невозможно. В своем руководстве Roger Johansson показывает, как это может быть реализовано с помощью псевдоэлемента :before, который для свойства content может иметь значение counter.

Псевдоэлемент :before применяется для отображения желаемого контента до элемента, к которому он добавляется. Работает совместно со свойством content.
нумерация чисел посредством css

Стоит прояснить, однако, что пронумерованные счетчики (counters) можно применять не только к упорядоченным спискам. К примеру, предположим, что вы захотели пронумеровать список определений (<dl>), который состоит из вопросов и ответов для вашего FAQ.

Разметка будет выглядеть приблизительно так:

HTML


<dl class="faq"> 
        <dt>How much wood would a wood chuck chuck if a wood chuck could chuck wood?</dt>
        <dd>1,000,000</dd> 
        <dt>What is the air-speed velocity of an unladen swallow?</dt>
        <dd>What do you mean? An African or European swallow?</dd> 
        <dt>Why did the chicken cross the road?</dt>
        <dd>To get to the other side</dd> 
</dl>

Каждый новый <dt> элемент это новый вопрос, поэтому к ним и применим нумерацию. Выглядеть это будет предельно просто:

Свойство content позволяет вставлять генерируемое содержание в текст веб-страницы, которое первоначально в тексте отсутствует.
Значение counter Выводит значение счетчика, заданного свойством counter-reset.

Свойство counter-reset устанавливает идентификатор для счетчика и задает начальное значение.
Свойство counter-increment задает шаг увеличения значения счетчика.

CSS


.faq {
        counter-reset: my-badass-counter;
}
.faq dt:before {
        content: counter(my-badass-counter);
        counter-increment: my-badass-counter;
}

Псевдоэлементу :before можно назначить любые стили. Например:

числа стилизованы при помощи Псевдоэлемента :before

Освоив это свойство, можно нумеровать все, что только захочется. На днях, к примеру, я выложил один из моих любимых рецептов и пронумеровал каждый шаг/фото римскими цифрами. Это послужило для меня напоминанием: числа необязательно должны быть десятичными.

римские цифры

Числовое многообразие представлено в виде значений свойства list-style-type.
А именно:

значения свойства list-style-type

Все, что требуется, так это указать желаемый вариант в значении счетчика.

CSS

content: counter(my-counter, lower-roman);

Будущее CSS3

Вышеописанный материал актуален для сегодняшнего дня, однако и он меркнет в сравнении с теми возможностями, которые скрыты CSS3 списках. Как только в браузерах будет реализована их поддержка, можно будет, к примеру, работать с маркерами списков напрямую.

CSS


li::marker {
  width: 30px;
  text-align: right;
  margin-right: 10px;
  display: inline-block;
}
 
ol {
  list-style: symbols("*""2020""2021""A7");
}
 
ul {
  list-style-type: "тут должна быть звездочка)";
}

Источник

Комментарии к статье

Добавить комментарий