Com a crescente diversidade nos tamanhos dos monitores, não é prático criar blocos únicos de texto que ocupem toda a largura da tela. A solução tradicional é dividir o texto em colunas manualmente, o que exige muito tempo; ou dividir texto dinamicamente com JavaScript, que não funciona universalmente. Além disso, este é um problema de apresentação, devemos ser capazes de estilo com CSS sem o uso de sistemas de grade ou carros alegóricos não deveríamos?
CSS3 realmente fornece uma maneira de você estilizar seu texto em várias colunas, ele ainda dá a capacidade de definir uma medianiz - o espaço entre essas colunas - desta forma você tem controle total ao invés do framework ou sistema de grade configurando essas lacunas para você .
O melhor de tudo, CSS3 degrada graciosamente, então se alguém está navegando no Netscape Navigator, seu site não vai quebrar.
É importante notar que, embora todos os navegadores atuais suportem várias colunas no CSS3 - sim, até mesmo o IE10 - muitas versões recentes - o IE9, por exemplo - não o fazem. Mesmo que o suporte seja bom, você deve incluir os prefixos de navegador para o webkit (-webkit-) e o mozilla (-moz-). Não há necessidade de incluir -ms- ou -o- para o IE e o Opera, pois eles suportam o recurso integralmente ou não o suportam.
Esse recurso de CSS realmente oferece várias propriedades para que você tenha controle total sobre como seu conteúdo é impresso no navegador e essas propriedades são:
Com todas essas propriedades, acho que não precisamos de mais nada para ter controle total sobre nossas colunas. É claro que nem todas essas propriedades são necessárias para que o layout de várias colunas funcione. Na verdade, apenas a contagem de colunas é necessária, mas você também deve usar a lacuna de coluna para dar um pouco de espaço ao texto e não ter todas as colunas topo um do outro.
Para colocar isso em prática, são necessárias apenas duas linhas de código:
/* This will produce a 3 column layout with a gap of 20px between each column */.cols3 {column-count: 3;column-gap: 20px;}
Se você também deseja aplicar uma regra às colunas, basta adicionar as propriedades extras:
/* This will produce a 3 column layout and a gap of 20px between each column and a rule of 1px solid black */.cols3 {column-count: 3;column-gap: 20px;column-rule-width: 1px;column-rule-style: solid;column-rule-color: #000;}
Como a propriedade de borda mais comum, você também pode empilhar a cor, o estilo e a largura na mesma linha, assim:
.cols3 {column-count: 3;column-gap: 20px;column-rule: 1px solid #000;}
Se você tiver um cabeçalho e quiser que o cabeçalho abranja todas as colunas, basta adicionar uma linha:
/*This h1 will take up the space of the 3 columns*/.cols3 h1{column-span: all;}
Você pode aplicar isso a praticamente qualquer HTML, de um único parágrafo a vários
Saltar para colunas CSS tem muitas vantagens na minha opinião, não há necessidade de usar muitas contas, flutuações ou quebra de conteúdo quando o navegador é redimensionado pelo usuário. Você também pode escrever seu código de maneira muito mais semântica e, como eles são suportados por todos os principais navegadores, você deve considerar o uso de colunas a partir de agora.
Você estilo colunas com CSS3, ou furar a flutuações e posicionamento? Que dicas você tem para lidar com navegadores mais antigos? Deixe-nos saber nos comentários.
Imagem em destaque / miniatura, imagem de colunas via Shutterstock.