Estaría soportado desde IE7 y superiores (y por supuesto por el resto de los navegadores de verdad) y la técnica se basa en utilizar las propiedades CSS counter-reset y counter-increment junto con la propiedad content dentro del pseudoelemento :before para autogenerar ids. Se puede hasta anidar contadores!
Los contadores se inicializan con
counter-reset: nombre_del_contador;
Y se incrementarían con
counter-increment: nombre_del_contador;
Se puede referenciar al valor como si fuera una "función" con la palabra reservada
counters
Vamos a ello.
En el primer ejemplo, se va a numerar atomáticamente cada sección de una página de modo que para cada sección, indicada por <h1>s tenga automáticamente la palabra "Sección <n>" con <n> el número de sección.
Primero, reseteamos el contador para que empiece por 1:
body {counter-reset: thecounter} /* el nombre del contador sería "thecounter" */
Cada <h1> cogería el prefijo "Sección " añadiéndole el contador que automáticamente se incrementaría para cada sección (que es por defecto y se puede obviar), donde "thecounter" es el nombre del contador que se va a usar para nombrar las secciones:
.counter h1:before { counter-increment: thecounter 1; content:"Sección "counter(thecounter)":"; }
Para una lista numerada anidada el contador se resetea y la numeración automática de los <ol> se desactiva porque no soporta anidamiento
ol { counter-reset: section; list-style-type: none; }
Ahora, cada <li> recive indentación automática y sel sepearador se fija al punto "." seguido por un espacio en blanco
li:before { counter-increment: section; content: counters(section,".")""; }El ejemplo completo sería:
<ol> <li>item</li> <!-- 1 --> <li>item <!-- 2 --> <ol> <li>item</li> <!-- 1.1 --> <li>item</li> <!-- 1.2 --> </ol> </li> <li>item</li> <!-- 3 --> <ol>
No hay comentarios:
Publicar un comentario