As propriedades CSS mostradas neste tutorial podem ser usadas para estilizar listas. As informações se referem aos elementos HTML ul e ol. Portanto, você pode personalizar listas ordenadas e não ordenadas conforme desejar.
Informações gerais sobre a lista
O list-style é um resumo das três seguintes propriedades:
• list-style-type
• list-style-position
• list-style-image
O list-style permite influenciar o estilo gráfico dos marcadores em listas e o recuo. As informações mencionadas são separadas por vírgulas. A ordem é irrelevante. Além disso, um valor não precisa ser especificado para cada propriedade.
Um exemplo:
<!DOCTYPE html>
 <html>
 <head>
<meta charset="utf-8">
<title>PSD-Tutorials.de</title>
 <style>
 ul {
    list-style:square;
 }
 </style>
 </head>
 <body>
 <ul>
 <li>HTML</li>
 <li>CSS</li>
 <li>JavaScript</li>
 </ul>
 </body>
 </html>No navegador, fica assim:
Marcadores gráficos
Você pode especificar uma imagem personalizada como marcador de lista. Para isso, utiliza-se a propriedade list-style-image. Os seguintes valores são possíveis:
• url – o nome do arquivo e possivelmente o caminho da imagem
• none – nenhuma imagem é exibida.
Um exemplo:
ul { 
    list-style-image: url(bullet.gif); 
 }
Verifique se o caminho da imagem especificado em URL está correto.
Se um caminho incorreto for especificado, os navegadores devem recorrer a um marcador padrão de lista.
A posição dos marcadores de lista
A propriedade list-style-position define como as numerações ou marcadores de lista devem se comportar em relação ao recuo.
• inside – a primeira linha é recuada de modo que o marcador e o item da lista terminem alinhados à esquerda.
• outside – o marcador de lista fica à esquerda do item da lista.
No exemplo a seguir, os dois valores inside e outside são utilizados.
<!DOCTYPE html>
 <html>
 <head>
<meta charset="utf-8">
<title>PSD-Tutorials.de</title>
 <style>
 ul.a {
    list-style-position:inside;
 }
 ul.b {
    list-style-position:outside;
 }
 </style>
 </head>
 <body>
 <p>Uma lista inside:</p>
 <ul class="a">
 <li>HTML</li>
 <li>CSS</li>
 <li>JavaScript</li>
 </ul>
 <p>Uma lista outside:</p>
 <ul class="b">
 <li>HTML</li>
 <li>CSS</li>
 <li>JavaScript</li>
 </ul>
 </body>
 </html>Dessa forma, é possível ver diretamente as diferentes influências desses dois valores.
Definir a aparência dos marcadores de lista
Para personalizar os marcadores ou bullets, você pode especificar explicitamente a aparência. Da mesma forma, é possível influenciar a exibição de listas numeradas. Para isso, utiliza-se a propriedade list-style-type. Os seguintes valores são permitidos para essa propriedade:
• decimal – para listas ol: Numeração 1, 2, 3, etc.
• lower-roman – para listas ol: Numeração i., ii., iii., etc.
• upper-roman – para listas ol: Numeração I., II., III., IV, etc.
• lower-alpha ou lower-latin – para listas ol: Numeração I., II., III., IV., etc.
• upper-alpha ou upper-latin – para listas ol: Numeração A., B., C., D., etc.
• disc – para listas ul: círculo preenchido como marcador
• circle – para listas ul: círculo vazio como marcador
• square – para listas ul: retângulo como marcador
• none – nenhum marcador ou numeração
• lower-greek – para listas ol: Numeração com letras gregas
• hebrew – para listas ol: Numeração com letras hebraicas
• decimal-leading-zero – para listas ol: Numeração com zero à frente 0: 01., 02., 03., 04., etc.
• cjk-ideographic – para listas ol: Numeração com caracteres ideográficos
• hiragana – para listas ol: numeração japonesa (com letras minúsculas)
• katakana – para listas ol: numeração japonesa (com letras maiúsculas)
• hiragana-iroha – para listas ol: numeração japonesa (com letras minúsculas)
• katakana-iroha – para listas ol: numeração japonesa (com letras maiúsculas)
No seguinte exemplo, algumas das variantes listadas são utilizadas.
<!DOCTYPE html>
 <html>
 <head>
<meta charset="utf-8">
<title>PSD-Tutorials.de</title>
 <style>
 ul.a {
    list-style-type:circle;
 }
 ul.b {
    list-style-type:square;
 }
 ol.c {
    list-style-type:upper-roman;
 }
 ol.d {
    list-style-type:lower-alpha;
 }
 </style>
 </head>
<body> 
   <ul class="a">   
      <li>HTML</li>   
      <li>CSS</li>
      <li>JavaScript</li>
   </ul> 
   <ul class="b">   
      <li>HTML</li>   
      <li>CSS</li>   
      <li>JavaScript</li> 
   </ul> 
   <ol class="c"> 
      <li>HTML</li>   
      <li>CSS</li>   
      <li>JavaScript</li> 
   </ol> 
   <ol class="d">   
      <li>HTML</li>   
      <li>CSS</li>   
      <li>JavaScript</li> 
   </ol> 
</body> 
</html>No navegador, a seguinte imagem é exibida:
Contador
Com listas ordenadas ol, é possível numerar o conteúdo. No entanto, em aplicações mais complexas, essa forma de numeração pode não ser muito prática. O CSS oferece uma alternativa com os contadores.
A seguir, vou mostrar como utilizar os contadores.
Primeiramente, crio um novo contador para o elemento body.
body { 
    counter-reset: kapitel; 
 }Com essa definição, o contador kapitel existe no documento. Agora é possível utilizar esse contador.
h1 { 
    counter-increment: kapitel; 
 }
Com a sintaxe mostrada, o contador é automaticamente incrementado em 1 cada vez que um novo elemento h1 aparece. O problema é que, no momento, a contagem ainda não é visível. Isso pode ser facilmente resolvido utilizando pseudo-elementos.
h1::before {
   content: counter(kapitel) ". ";
 }
Uma aplicação completa poderia ser assim:
<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 body {
    counter-reset: kapitel;
 }
 h1 {
    counter-increment: kapitel;
 }
 h1::before {
    content: counter(kapitel) ". ";
 }
 </style>
 </head>
 <body>
 <h1>Capítulo</h1>
 <h1>Capítulo</h1>
 </body>
 </html>E aqui está o resultado no navegador:
No exemplo mostrado, o número é exibido no início do elemento h1 usando ::before. Para evitar que o número fique imediatamente ao lado do texto do cabeçalho, é adicionado um ponto e um espaço após o número.
content: counter(kapitel) ". "
Também é possível utilizar contagens aninhadas. Para isso, o contador é definido no ponto em que deve ser reiniciado.
h1 {
   counter-increment: kapitel;
   counter-reset: unterkapitel;
 }Neste exemplo, o contador é reiniciado sempre que um novo elemento h1 é encontrado. O exemplo a seguir demonstra uma aplicação típica de contadores aninhados.
<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 body {
    counter-reset:kapitel;
 }
 h1 {
    counter-reset:unterkapitel;
 }
 h1:before {
    counter-increment:kapitel;
    content: counter(kapitel) ". ";
 }
 h2:before {
    counter-increment:unterkapitel;
    content:counter(kapitel) "." counter(unterkapitel) " ";
 }
 </style>
 </head>
 <body>
 <h1>Capítulo</h1>
 <h2>Subcapítulo</h2>
 <h2>Subcapítulo</h2>
 <h2>Subcapítulo</h2>
 <h1>Capítulo</h1>
 <h2>Subcapítulo</h2>
 <h2>Subcapítulo</h2>
 <h2>Subcapítulo</h2>
 </body>
 </html>No navegador, o resultado é o seguinte:
Os exemplos mostraram o quão poderosos os contadores podem ser.
