La counter-set
propiedad CSS, fiel a su nombre, establece el valor inicial para un contador CSS. ¿Sabes cómo las listas ordenadas comienzan en 1 y luego aumentan desde allí? La counter-set
propiedad nos permite establecer ese valor inicial en otra cosa, digamos, -1. O 2. ¡O 200! Excepto que se aplica a contadores CSS en lugar de listas ordenadas.
Entonces, digamos que tenemos un contador personalizado para una lista de capítulos de libros, donde el número de capítulo se antepone al nombre del capítulo.
Comenzaríamos por definir un contador con la counter-reset
propiedad. Lo llamaremos chapter
y definirlo en una clase de contenedor primario para nuestros capítulos llamados, de manera creativa, .chapters
.
.chapters ( counter-reset: chapter; )
A continuación, asignaríamos el chapter
contador a un elemento usando la counter-increment
propiedad. Dado que estos son capítulos de libros, los aplicaremos a
elementos, asumiendo que el título del libro sería el
. Tenga en cuenta que en realidad lo estamos asignando al :before
pseudo-elemento, ya que nos permite anteponer nuestro contador al actual
elemento.
h2:before ( counter-increment: chapter; )
h2:before ( counter-increment: chapter; )
Genial, lo último que necesitaríamos es decirle al mostrador lo que debe mostrar. Eso se hace en la content
propiedad a través de la counter()
función. También echaremos un poco de color en el mostrador, ya que el diseño lo requiere.
h2:before ( color: red; content: "Chapter " counter(chapter) ": "; counter-increment: chapter; )
¡Oye, nos vemos bien!
¡Pero espera! Realmente no estoy cavando el hecho de que estamos comenzando con el Capítulo 1. Quiero decir, el "Adelante" no es realmente un capítulo. En todo caso, es como el Capítulo 0.
¡Ahí es donde counter-set
entra en juego! Pongamos las cosas para comenzar en cero:
h2:first-of-type::before ( counter-set: chapter; )
¡Aquí vamos! Eso es mejor. Simplemente estableciendo el valor de la propiedad en el nombre del contador, hemos configurado la lista de capítulos para que comience en el Capítulo 0. Podríamos haberlo establecido con la misma facilidad para comenzar en otra cosa, como el capítulo 100.
¿Y si un navegador no es compatible counter-set
? Nada en realidad. Es simplemente se ignora y la lista se iniciará en su defecto, 1
.
Sintaxis
( ? )+ | none
Esta es básicamente una forma elegante de decir que la propiedad toma el nombre de un contador personalizado ( ) y el valor inicial (
). O se establece en
none
y la numeración se iniciará en el punto de partida predeterminada, 1
.
- Valor inicial:
none
- Se aplica a: todos los elementos (incluidos los no visuales)
- Heredado: no
- Tipo de animación: 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;
Tenga en cuenta que counter-set
creará un nuevo contador si el nombre del contador declarado en él aún no se ha definido en otro lugar.
Soporte de navegador
ES DECIR | Borde | Firefox | Cromo | Safari | Ópera |
---|---|---|---|---|---|
No | No | 68+ | No | No | No |
Android Chrome | Android Firefox | Navegador de Android | Safari de iOS | mini Opera |
---|---|---|---|---|
No | 79+ | No | No | No |
Otras lecturas
- Especificación de nivel 3 del módulo de listas CSS (borrador de trabajo)
- Visualización del paso actual con contadores CSS
- Contar con contadores CSS y cuadrícula
- Cómo invertir los contadores personalizados de CSS