Dividindo listas com CSS3

O objetivo é dividir uma lista em colunas. Parece simples, mas existem algumas maneiras de fazer isso:

  • float quebra a ordem de sua lista exibindo-a horizontalmente,
  • A propriedade de colunas CSS3 não é compatível com o IE, enquanto os navegadores Firefox e webkit exigem seus prefixos,
  • e, claro, você pode usar plug-ins JS.

Mas existe uma solução CSS3 pura, o exemplo mostra 3 colunas, cada uma contém no máximo 3 elementos:

ul li {
line
-height: 20px;
}
ul li
:nth-of-type(3n+4) {
margin
-top: -60px;
}
ul li
:nth-of-type(n+4) {
margin
-left: 120px;
}
ul li
:nth-of-type(n+7) {
margin
-left: 240px;
}

Divisão de código:


ul li {
line
-height: 20px;
}

Definindo a altura li .

ul li:nth-of-type(3n+4) {
margin
-top: -60px;
}

Mova cada 3 li para cima, começando com a 4ª, defina a margem para 3 vezes a altura de li .

ul li:nth-of-type(n+4) {
margin
-left: 120px;
}
ul li
:nth-of-type(n+7) {
margin
-left: 240px;
}

Mova a segunda e a terceira coluna para evitar a sobreposição.

Aqui está um violino

Funciona no IE9, Opera, Chrome, Safari e Firefox.