tecnologias-web.github.io

Layouts com CSS3

Introdução

Com a disseminação de todo o tipo e tamanho de tela que são usados para navegar na web, foi-se necessário estender o CSS para que ele seja capaz de se adequar a tantas telas diferentes.

Técnicas mais modernas surgiram: flexbox, media query e uso de medidas relativas, com o objetivo de tornar essa tarefa mais fácil. Vamos aprender a todas.

Trabalhando com dimensões

Estas propriedades definem o tamanho dos elementos renderizados. Elas são height e width. Recebe valores em tamanho e porcentagem (mesmas unidades vistas anteriormente).

Manipulando altura e largura

Modelo Caixa (Box-Model)

Além da altura (height) e largura (width), temos algumas outras medidas que influenciam no tamanho total que um elemento HTML ocupa na página:

Manipulação do Border

Manipulação do Padding

Manipulação do Margin

Essas distâncias configuram o que chamamos de Box-Model (modelo caixa). Desta maneira, quando definimos os atributos height e width do elemento em si, esses valores não levam em consideração o padding e o border, fazendo com que os elementos sejam maiores do que deveriam.

Modelo Caixa

Para corrigir o problema de espaçamento e tamanho, basta utilizar a propriedade box-sizing. Os valores possíveis são

Uma atitude comum entre os desenvolvedores é utilizar o border-box para todos os objetos como padrão. Para facilitar, podemos utilizar a seguinte regra para colocar esse atributo para todos os elementos da página usando o wildcard:

 * {
    box-sizing: border-box
}

Display

Define a maneira como os diversos elementos de uma página são exibidos. Temos quatro valores básicos:

Exemplos dos Displays

Media Query

O conceito principal de uma Media Query é verificar algumas informações do dispositivo visualizando o site, assim podendo definir um conjunto de regras que funcione melhor para este dispositivo. É possível verificar principalmente:

Técnica de Media Query é muito popular no desenvolvimento mobile.

Sintaxe de uma Media Query

Flexbox

No CSS3 foi definida mais uma propriedade display, a Flex(box). A ideia do Flexbox é garantir que o conteúdo interno da página consiga se reorganizar de uma maneira previsível caso a janela mude de tamanho. Ajuda a fazer layouts de maneira mais simplificada e fluída.

Propriedades que fazem parte do modelo flexbox são divididas em propriedades para o container (que possui o display flex, chamado de flex-container) e para os seus filhos (chamados de flex-items).

Para auxiliar em deixar previsível o comportamento dos elementos de um flexbox-container (em vermelho), temos uma série de propriedades envolvidas:

Para os flex-items (em amarelo), precisamos das seguintes propriedades:

Pontos principais

Atente para os tópicos a seguir. Eles devem ser estudados com muita atenção, pois representam os pontos mais importantes do capítulo.