Esta es la solución que tengo trabajando en Firefox 3, Opera y Google Chrome. La lista todavía se muestra en IE7 (pero sin el corchete de cierre y los números de alineación a la izquierda):
ol {
counter-reset: item;
margin-left: 0;
padding-left: 0;
}
li {
display: block;
margin-bottom: .5em;
margin-left: 2em;
}
li::before {
display: inline-block;
content: counter(item) ") ";
counter-increment: item;
width: 2em;
margin-left: -2em;
}
<ol>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
<li>Nine<br>Items</li>
<li>Ten<br>Items</li>
</ol>
EDITAR: Incluye corrección de múltiples líneas por extraño
También hay una solución CSS para cambiar de números a listas alfabéticas / romanas en lugar de usar el atributo type en el elemento ol.
Consulte la propiedad CSS de tipo de estilo de lista . O cuando se utilizan contadores, el segundo argumento acepta un valor de tipo de estilo de lista. Por ejemplo, lo siguiente utilizará roman superior:
li::before {
content: counter(item, upper-roman) ") ";
counter-increment: item;
/* ... */
ol {counter-reset: item; padding-left: 0;} li {display: block; margin-bottom: .5em;} li:before {display: inline-block; content: counter(item) ") "; counter-increment: item; padding-right: 0.8em;}
.El CSS para diseñar listas está aquí , pero es básicamente:
Sin embargo, el diseño específico que está buscando probablemente solo se pueda lograr profundizando en las entrañas del diseño con algo como esto (tenga en cuenta que en realidad no lo he probado):
fuente
También puede especificar sus propios números en el HTML, por ejemplo, si los números los proporciona una base de datos:
El
seq
atributo se hace visible utilizando un método similar al dado en otras respuestas. Pero en lugar de usarcontent: counter(foo)
, usamoscontent: attr(seq)
.Demostración en CodePen con más estilo
fuente
value
atributo en<li>
. ej<li value="20">
. Entonces no necesitas ningún pseudoelemento. Demovalue="4A"
, ya que no funcionará. Además, el atributo de valor puede funcionar con eltype
atributo, pero el valor debe ser un número (ya que funciona dentro de un conjunto ordenado).reversed
atributo es solo html5, al igual que el usovalue
deli
). En lugar de usar suseq
, configuré avalue
y usé enattr(value)
lugar deattr(seq)
Robé mucho de esto de otras respuestas, pero esto funciona en FF3 para mí. Tiene
upper-roman
, sangría uniforme, un corchete cerrado.fuente
Sugiero jugar con el atributo: before y ver qué se puede lograr con él. Significará que su código realmente está limitado a buenos navegadores nuevos, y excluye la sección (molestamente grande) del mercado que todavía usa navegadores viejos y basura,
Algo como lo siguiente, que fuerza un fijo con en los elementos. Sí, sé que es menos elegante tener que elegir el ancho tú mismo, pero usar CSS para tu diseño es como un trabajo policial encubierto: por buenos que sean tus motivos, siempre se complica.
Pero tendrás que experimentar para encontrar la solución exacta.
fuente
Los números se alinean mejor si agrega ceros a la izquierda a los números, estableciendo list-style-type en:
fuente
HTML5: use el
value
atributo (no se necesita CSS)Los navegadores modernos interpretarán el
value
atributo y lo mostrarán como espera. Consulte la documentación de MDN .También echar un vistazo a la
<ol>
artículo sobre MDN , especialmente la documentación para elstart
y atributo.fuente
Tomó prestada y mejoró la respuesta de Marcus Downing . Probado y funciona en Firefox 3 y Opera 9. También admite varias líneas.
fuente
Existe el atributo Tipo que le permite cambiar el estilo de numeración, sin embargo, no puede cambiar el punto después del número / letra.
fuente
Los docs dicen sobre
list-style-position
: outside
Más arriba en esa página está el tema de los marcadores.
Un ejemplo es:
fuente
No ... solo usa un DL:
fuente
Lo tengo. Intente lo siguiente:
El problema es que esto definitivamente no funcionará en navegadores más antiguos o menos compatibles:
display: inline-block
es una propiedad muy nueva.fuente
Solución alternativa rápida y sucia . Puede utilizar un carácter de tabulación junto con texto preformateado. Aquí hay una posibilidad:
y tu html:
Tenga en cuenta que el espacio entre la
li
etiqueta y el comienzo del texto es un carácter de tabulación (lo que obtiene cuando presiona la tecla de tabulación dentro del bloc de notas).Si necesita admitir navegadores más antiguos, puede hacer esto en su lugar:
fuente
Las otras respuestas son mejores desde un punto de vista conceptual. Sin embargo, puede simplemente rellenar los números con el número apropiado de '& ensp;' para que se alineen.
* Nota: Al principio no reconocí que se estaba utilizando una lista numerada. Pensé que la lista se estaba generando explícitamente.
fuente
Daré aquí el tipo de respuesta que normalmente no me gusta leer, pero creo que como hay otras respuestas que te dicen cómo lograr lo que quieres, sería bueno repensar si lo que estás tratando de lograr es realmente una buena idea.
Primero, debe pensar si es una buena idea mostrar los elementos de una manera no estándar, con un carácter separador diferente al proporcionado.
No sé las razones de eso, pero supongamos que tiene buenas razones.
Las formas aquí propuestas para lograr eso consisten en agregar contenido a tu marcado, principalmente a través del CSS: antes de la pseudoclase. Este contenido realmente está modificando la estructura de su DOM, agregando esos elementos.
Cuando utilice la numeración estándar "ol", tendrá un contenido renderizado en el que se puede seleccionar el texto "li", pero el número que lo precede no se puede seleccionar. Es decir, el sistema de numeración estándar parece ser más "decoración" que contenido real. Si agrega contenido para números utilizando, por ejemplo, los métodos ": before", este contenido será seleccionable y, debido a esto, se realizarán problemas de vopy / pegado no deseados o problemas de accesibilidad con lectores de pantalla que leerán este contenido "nuevo" además al sistema de numeración estándar.
Quizás otro enfoque podría ser diseñar los números usando imágenes, aunque esta alternativa traerá sus propios problemas (los números no se muestran cuando las imágenes están deshabilitadas, el tamaño del texto para el número no cambia, ...).
De todos modos, el motivo de esta respuesta no es solo para proponer esta alternativa de "imágenes", sino para hacer pensar a la gente en las consecuencias de intentar cambiar el sistema de numeración estándar por listas ordenadas.
fuente
Este código hace que el estilo de numeración sea el mismo que los encabezados del contenido de li.
fuente