Esta é a solução que tenho trabalhando no Firefox 3, Opera e Google Chrome. A lista ainda é exibida no IE7 (mas sem o colchete de fechamento e os números de alinhamento à esquerda):
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: Correção de várias linhas incluída por strager
Também existe uma solução CSS para mudar de números para listas alfabéticas / romanas em vez de usar o atributo type no elemento ol.
Consulte a propriedade CSS do tipo de lista . Ou, ao usar contadores, o segundo argumento aceita um valor do tipo de lista. Por exemplo, o seguinte usará romano 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;}
.O CSS para listas de estilo está aqui , mas é basicamente:
No entanto, o layout específico que você procura provavelmente só pode ser alcançado investigando as entranhas do layout com algo como isto (observe que eu ainda não tentei):
fonte
Você também pode especificar seus próprios números no HTML - por exemplo, se os números forem fornecidos por um banco de dados:
O
seq
atributo torna-se visível usando um método semelhante ao fornecido em outras respostas. Mas em vez de usarcontent: counter(foo)
, usamoscontent: attr(seq)
.Demonstração em CodePen com mais estilo
fonte
value
atributo ativado<li>
. por exemplo<li value="20">
. Então você não precisa de nenhum pseudoelemento. Demovalue="4A"
, pois não funcionará. Além disso, o atributo de valor pode funcionar com otype
atributo, mas o valor ainda deve ser um número (pois funciona em um conjunto ordenado).reversed
atributo é html5 apenas, como está usando ovalue
deli
). Em vez de usar seuseq
, configurei umvalue
e usei emattr(value)
vez deattr(seq)
Roubei muito disso de outras respostas, mas isso está funcionando no FF3 para mim. Possui
upper-roman
, indentação uniforme, um colchete fechado.fonte
Eu sugiro brincar com o atributo: before e ver o que você pode conseguir com ele. Isso significará que seu código está realmente limitado a bons navegadores novos e exclui a seção (irritantemente grande) do mercado que ainda usa navegadores antigos e ruins,
Algo como o seguinte, o que força uma fixação nos itens. Sim, eu sei que é menos elegante ter que escolher a largura sozinho, mas usar CSS para seu layout é como um trabalho policial disfarçado: por melhores que sejam seus motivos, sempre fica confuso.
Mas você terá que experimentar para encontrar a solução exata.
fonte
Os números se alinham melhor se você adicionar zeros à esquerda aos números, definindo o tipo de lista para:
fonte
HTML5: Use o
value
atributo (sem necessidade de CSS)Os navegadores modernos interpretarão o
value
atributo e o exibirão como você espera. Consulte a documentação do MDN .Também ter um olhar para o
<ol>
artigo sobre MDN , especialmente a documentação para ostart
e atributo.fonte
Emprestada e melhorada a resposta de Marcus Downing . Testado e funciona no Firefox 3 e Opera 9. Suporta várias linhas também.
fonte
Existe o atributo Type que permite alterar o estilo de numeração, no entanto, você não pode alterar o ponto final após o número / letra.
fonte
Os documentos dizem sobre
list-style-position
: outside
Mais acima nessa página, estão as coisas sobre marcadores.
Um exemplo é:
fonte
Não ... basta usar um DL:
fonte
Eu tenho. Experimente o seguinte:
O problema é que isso definitivamente não funcionará em navegadores mais antigos ou menos compatíveis:
display: inline-block
é uma propriedade muito nova.fonte
Solução alternativa rápida e suja . Você pode usar um caractere de tabulação junto com o texto pré-formatado. Aqui está uma possibilidade:
e seu html:
Observe que o espaço entre a
li
tag e o início do texto é um caractere de tabulação (o que você obtém quando pressiona a tecla tab dentro do bloco de notas).Se precisar de suporte para navegadores mais antigos, você pode fazer o seguinte:
fonte
As outras respostas são melhores do ponto de vista conceitual. No entanto, você pode simplesmente digitar os números com o número apropriado de '& ensp;' para alinhá-los.
* Nota: a princípio não reconheci que uma lista numerada estava sendo usada. Achei que a lista estava sendo gerada explicitamente.
fonte
Darei aqui o tipo de resposta que geralmente não gosto de ler, mas acho que, como há outras respostas dizendo como conseguir o que você quer, seria bom repensar se o que você está tentando conseguir é realmente uma boa ideia.
Primeiro, você deve pensar se é uma boa ideia mostrar os itens de uma forma não padronizada, com um caractere separador diferente do fornecido.
Não sei os motivos para isso, mas vamos supor que você tenha bons motivos.
As formas aqui propostas de conseguir que consistam em adicionar conteúdo à sua marcação, principalmente através do CSS: antes da pseudoclasse. Este conteúdo está realmente modificando sua estrutura DOM, adicionando esses itens a ela.
Ao usar a numeração "ol" padrão, você terá um conteúdo renderizado no qual o texto "li" é selecionável, mas o número anterior não é selecionável. Ou seja, o sistema de numeração padrão parece ser mais "decoração" do que conteúdo real. Se você adicionar conteúdo para números usando, por exemplo, aqueles métodos ": before", este conteúdo será selecionável e devido a isso, realizando problemas indesejados de vopy / paste ou problemas de acessibilidade com leitores de tela que lerão este "novo" conteúdo adicional ao sistema de numeração padrão.
Talvez outra abordagem pudesse ser estilizar os números usando imagens, embora essa alternativa traga seus próprios problemas (números não exibidos quando as imagens são desativadas, tamanho do texto para número não muda, ...).
De qualquer forma, a razão dessa resposta não é apenas propor essa alternativa de "imagens", mas fazer as pessoas pensarem nas consequências de tentar mudar o sistema de numeração padrão para listas ordenadas.
fonte
Este código torna o estilo de numeração igual aos cabeçalhos de conteúdo li.
fonte