A counter-set
propriedade CSS, fiel ao seu nome, define o valor inicial de um contador CSS. Você sabe como as listas ordenadas começam em 1 e aumentam a partir daí? A counter-set
propriedade nos permite definir esse valor inicial para outra coisa, digamos, -1. Ou 2. Ou 200! Exceto que é aplicado a contadores CSS em vez de listas ordenadas.
Então, digamos que temos um contador personalizado para uma lista de capítulos de livros, onde o número do capítulo é adicionado ao nome do capítulo.
Começaríamos definindo um contador com a counter-reset
propriedade. Vamos chamá-lo chapter
e defini-lo em uma classe de contêiner pai para nossos capítulos chamada, criativamente .chapters
,.
.chapters ( counter-reset: chapter; )
Em seguida, atribuiríamos o chapter
contador a um elemento usando a counter-increment
propriedade. Uma vez que esses são capítulos de livros, vamos aplicá-los a
elementos, presumindo que o título do livro seria o
. Observe que, na verdade, estamos atribuindo-o ao :before
pseudo-elemento, uma vez que nos permite anexar nosso contador ao real
elemento.
h2:before ( counter-increment: chapter; )
h2:before ( counter-increment: chapter; )
Legal, a última coisa que precisamos é dizer ao contador o que ele deve mostrar. Isso é feito na content
propriedade por meio da counter()
função. Vamos jogar um pouco de cor no balcão também, já que o design pede.
h2:before ( color: red; content: "Chapter " counter(chapter) ": "; counter-increment: chapter; )
Ei, estamos bem!
Mas espere! Não estou realmente cavando o fato de que estamos começando no Capítulo 1. Quer dizer, o “Avançar” não é realmente um capítulo. Na verdade, é como o Capítulo 0.
É aí que counter-set
entra! Vamos definir as coisas para começar do zero:
h2:first-of-type::before ( counter-set: chapter; )
Aqui vamos nós! Isso é melhor. Apenas definindo o valor da propriedade para o nome do contador, definimos a lista de capítulos para começar no Capítulo 0. Poderíamos ter definido com a mesma facilidade para começar em outra coisa, como o capítulo 100.
E se um navegador não for compatível counter-set
? Nada realmente. Ele será simplesmente ignorado e a lista começará em seu padrão 1
,.
Sintaxe
( ? )+ | none
Esta é basicamente uma maneira elegante de dizer que a propriedade recebe o nome de um contador personalizado ( ) e o valor inicial (
). Ou defina-o como
none
e a numeração começará no ponto inicial padrão 1
,.
- Valor inicial:
none
- Aplica-se a: todos os elementos (incluindo os não visuais)
- Herdado: não
- Tipo de animação: por tipo de valor calculado
Valores
/* Set "awesome-counter" to 0 */ counter-set: awesome-counter; /* Set "awesome-counter" to -10 */ counter-set: awesome-counter -10; /* Set "awesome1" to 0, and "awesome2" to 2 */ counter-set: awesome1 awesome2 2; /* Wipe out any other settings that may have been declared elsewhere */ counter-set: none; /* Global values */ counter-set: inherit; counter-set: initial; counter-set: unset;
Observe que counter-set
criará um novo contador se o nome do contador declarado nele ainda não tiver sido definido em outro lugar.
Suporte de navegador
IE | Beira | Raposa de fogo | cromada | Safári | Ópera |
---|---|---|---|---|---|
Não | Não | 68+ | Não | Não | Não |
Android Chrome | Android Firefox | Navegador Android | iOS Safari | Opera Mini |
---|---|---|---|---|
Não | 79+ | Não | Não | Não |
Leitura adicional
- Especificação de nível 3 de listas CSS (rascunho)
- Exibindo a etapa atual com contadores CSS
- Contando com contadores CSS e grade
- Como reverter contadores CSS personalizados