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.