View on GitHub

aulas-programacao-web

Materiais de Aula - Programação de Computadores com tecnologias Web

Box-model

📽 Veja esta vídeo-aula no Youtube

Chamamos de box model a forma que o CSS define a caixa retangular que envolve os elementos da página.

Um elemento possui uma medida implícita, que será calculada de acordo com o funcionamento da sua tag e com seu conteúdo. Por exemplo, um parágrafo será exibido em bloco (usando toda a largura disponível) enquanto um link será exibido em linha (usando a largura necessária para o conteúdo e eventualmente quebrando o conteúdo em várias linhas).

Independente disso, cada elemento possui seu conteúdo, bordas, margens (espaçamento externo) e padding (espaçamento interno, ou enchimento).

Por padrão o CSS utiliza um modo chamado content-box. Se um elemento possui 100px de largura e eu adiciono 5px de borda de cada lado, as bordas serão desenhadas “para fora”, fazendo o elemento utilizar mais 10px de espaço na página. Bordas, padding e margens não alteram o espaço disponível para conteúdo, e sim o tamanho total ocupado pelo elemento.

Quando usamos o modo border-box o CSS considera como tamanho do elemento a soma do seu conteúdo, padding e bordas. Nesse sentido, podemos pensar que as bordas e o padding são desenhados “para dentro” (as margens continuam “para fora”). Por exemplo, um elemento de 100px com 5px de borda em cada lado e 2px de padding em cada lado terá 100px de largura mas somente 86px disponíveis para conteúdo.

Podemos mudar o modo do box model usando a propriedade box-sizing:


Margens e paddings

Adicionamos esses espaçamentos indicando as suas medidas. A propriedade margin indica a margem (externa à borda) e padding indica o enchimento (interno, entre a borda e o conteúdo).

Veja alguns exemplos:

Podemos também utilizar margin-top, margin-right, margin-bottom e margin-left para alterar as medidas individualmente.

Substitua margin por padding nos exemplos acima.


Bordas

Controla as bordas do elemento.

Podemos também utilizar -top, -right, -bottom e -left para alterar as bordas individualmente.

💡 Use uma imagem quadrada com borda arredondada em 50% para exibí-la em um círculo.


Sombras

Usamos box-shadow para adicionar sombras em elementos.

São 5 configurações, na sequência:

Podemos usar diversas configurações separadas por vírgula.

Exemplos:


Bordas internas de tabelas

Podemos definir que as bordas de cada um dos elementos de uma tabela, caso coincidam, sejam colapsadas (tornadas uma só). Na prática, células vizinhas não compartilham bordas no modelo separate, e compartilham no modelo collapse


Se necessário, consulte a lista completa no MDN.