HTML & CSS para iniciantes

HTML & CSS para iniciantes (Parte 35): Listas e Contadores

Todos os vídeos do tutorial

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:

HTML & CSS para iniciantes (Parte 35): Listas e Contadores

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.

HTML & CSS para iniciantes (Parte 35): Listas e Contadores



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.

HTML & CSS para iniciantes (Parte 35): Listas e Contadores

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:

HTML & CSS para iniciantes (Parte 35): Listas e Contadores

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:

HTML & CSS para iniciantes (Parte 35): Listas e Contadores



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:

HTML & CSS para iniciantes (Parte 35): Listas e Contadores.



Os exemplos mostraram o quão poderosos os contadores podem ser.