Você pode criar um grid de caixas que preenchem a largura do navegador e quebram suavemente. Isso tem sido possível por muito tempo utilizando o float, mas agora com o valor inline-block da propriedade display é bem mais fácil. Vejamos exemplos de ambas as abordagens.
.box {
float: left;
width: 200px;
height: 100px;
margin: 1em;
}
.after-box {
clear: left;
}
Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>Estou flutuando!
</div>
Estou utilizando a propriedade clear, logo não flutuo ao lado das outras caixas.
É possível obter o mesmo efeito utilizando o valor inline-block da propriedade display.
.box2 {
display: inline-block;
width: 200px;
height: 100px;
margin: 1em;
}
Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>Eu sou um inline-block!
</div>
E eu não preciso utilizar clear neste caso. Show de bola!
Para utilizar o display:inline-block você precisará de um pouco mais de trabalho para dar suporte ao IE6 e IE7. Algumas vezes as pessoas falam sobre o inline-block ativando algo chamado hasLayout, mas você só precisa saber sobre isso para dar suporte a navegadores antigos. Veja o link anterior sobre o suporte ao IE6 e IE7 se estiver curioso para aprender mais. Se não, vamos continuar.