Tengo una lista ordenada donde me gustaría que el número inicial fuera 6. Descubrí que esto era compatible (ahora en desuso) en HTML 4.01. En esta especificación, dicen que puede especificar el número entero inicial usando CSS. (en lugar del start
atributo)
¿Cómo especificarías el número inicial con CSS?
html
css
html-lists
vrish88
fuente
fuente
<ol start="">
ya no está obsoleto en HTML5 , así que seguiría usándolo, independientemente de lo que diga HTML4.01.fuente
start="number"
apesta porque no cambia automáticamente según la numeración anterior.Otra forma de hacer esto que puede adaptarse a necesidades más complicadas es usar
counter-reset
ycounter-increment
.Problema
Di que quieres algo como esto:
Puede establecer
start="3"
el terceroli
del segundool
, pero ahora deberá cambiarlo cada vez que agregue un elemento al primerool
Solución
Primero, borremos el formato de nuestra numeración actual.
Haremos que cada li muestre el mostrador
Ahora solo necesitamos asegurarnos de que el contador se restablezca solo en el primero en
ol
lugar de en cada uno.Manifestación
http://codepen.io/ajkochanowicz/pen/mJeNwY
Ahora puedo agregar tantos elementos a cualquiera de las listas y se conservará la numeración.
fuente
ol li {...}
debería serol li:before {...}
- de lo contrario esta es la solución perfecta, ¡gracias!Me sorprende que no haya podido encontrar la respuesta en este hilo.
He encontrado esta fuente , que he resumido a continuación:
Para establecer el atributo de inicio para una lista ordenada usando CSS en lugar de HTML, puede usar la
counter-increment
propiedad de la siguiente manera:counter-increment
parece estar indexado en 0, por lo que para obtener una lista que comience en 4, use3
.Para el siguiente HTML
Mi resultado es
Mira mi violín
Consulte también la referencia wiki de W3
fuente
Como sugirieron otros, se puede usar el
start
atributo delol
elemento.Alternativamente, se puede usar el
value
atributo delli
elemento. Ambos atributos están marcados como obsoletos en HTML 4.01 , pero no en HTML 5 (ol
yli
).fuente
Comenzar la numeración de una lista ordenada en un número que difiera del valor predeterminado ("1") requiere el
start
atributo. Este atributo estaba permitido (no obsoleto) en la especificación HTML 4.01 (HTML 4.01 aún no era una "Especificación reemplazada" en el momento en que se publicó esta pregunta) y todavía está permitido en la especificación HTML 5.2 actual . Elol
elemento también tenía unstart
atributo opcional en la DTD de transición de XHTML 1.0 pero no en la DTD estricta de XHTML 1.0 (busque la cadenaATTLIST ol
y verifique la lista de atributos). Entonces, a pesar de lo que dicen algunos de los comentarios anteriores, elstart
atributo no fue desaprobado ; más bien era inválidoen los DTD estrictos de HTML 4.01 y XHTML 1.0. A pesar de lo que afirma uno de los comentarios, elstart
atributo no está permitido en elul
elemento y actualmente no funciona en Firefox y Chromium.Tenga en cuenta también que un separador de miles no funciona (en las versiones actuales de Firefox y Chromium). En el siguiente fragmento de código,
10.000
se interpretará como10
; lo mismo se aplica a10,000
. Por lo tanto, no use el siguiente tipo decounter
valor:Entonces, lo que debe usar es lo siguiente (en los raros casos en los que se requieren valores superiores a 1000):
Algunas de las otras respuestas sugieren usar la propiedad CSS
counter
, pero esto va en contra de la separación tradicional de contenido y diseño (en HTML y CSS, respectivamente). Los usuarios con ciertas discapacidades visuales pueden usar sus propias hojas de estilo y, como resultado, loscounter
valores pueden perderse.counter
También se debe probar la compatibilidad con lectores de pantalla . La compatibilidad con lectores de pantalla para contenido en CSS es una característica relativamente reciente y el comportamiento no es necesariamente coherente. Consulte Lectores de pantalla y CSS: ¿Estamos pasando de moda (y entrando en contenido)? por John Northup en el blog WebAIM (agosto de 2017).fuente
En caso de que las listas estén anidadas, tiene que haber un manejo que omita los elementos de la lista anidada, lo que logré verificando que el abuelo no es un elemento de la lista.
fuente
Con CSS es un poco complicado cubrir el caso de que hay elementos de lista anidados, por lo que solo el primer nivel de lista obtiene la numeración personalizada que no se interrumpe con cada nueva lista ordenada. Estoy usando el combinador CSS '>' para definir las posibles rutas a los elementos de la lista que obtendrán una numeración personalizada. Ver https://www.w3schools.com/css/css_combinators.asp
fuente
Obviamente, ni @start de una lista ordenada <ol> ni @value de un elemento de lista <li> se pueden establecer mediante CSS. Consulte https://www.w3schools.com/css/css_list.asp
Reemplazar la numeración por un contador en CSS parece ser la mejor / más rápida / infalible solución y hay otras que la promocionan, por ejemplo, https://css-tricks.com/numbering-in-style/
Con JavaScript puro es posible establecer @value de cada elemento de la lista, pero esto, por supuesto, es más lento que CSS. Ni siquiera es necesario comprobar si el elemento de la lista pertenece a una lista ordenada <ol>, porque las listas desordenadas se excluyen automáticamente.
fuente