View on GitHub

aulas-programacao-web

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

Tamanho e posicionamento

📽 Veja esta vídeo-aula no Youtube

Fluxo normal

Cada elemento HTML é desenhado na tela de maneira diferente, de acordo com sua definição. Alguns elementos, como um parágrafo, são chamados de elementos em nível de bloco, e tem um comportamento diferente de elementos que fluem como um texto, chamado de elementos em nível de linha.

Elementos em nível de bloco, ou block:

Elementos em nível de linha, ou inline

Após o seu posicionamento padrão, baseado no seu conteúdo, são aplicadas as bordas, margens e paddings, conforme o box-model.

div e span

Quando precisamos de uma tag com comportamento em bloco genérica, sem uma semântica específica, utilizamos a tag div (divisão). Similarmente, usamos a tag span (intervalo) para obtermos um elemento inline genérico.

Exemplo:

<div>
    Este é um elemento genérico de bloco. <span>Este é um elemento genérico em linha</span>
</div>

display

Podemos controlar o método de renderização de um elemento através da propriedade display.

Perceba que flex e grid funcionam de forma diferente, pois eles próprios externamente são blocos, mas internamente são containers para que os elementos filhos se posicionem de maneiras específicas. Veremos esses modelos em breve.

Tamanho

Os elementos possuem um tamanho intrínseco de acordo com seu conteúdo. Dependendo do seu display, podemos definir restrições de tamanho, o que chamamos de tamanho extrínseco:

Elementos inline não respeitam restrições de tamanho, sempre vão se adaptar ao tamanho do se elemento-pai e do seu conteúdo. Para elementos block:

Caso o espaço não seja suficiente para conter o conteúdo do elemento, o conteúdo vaza. Podemos controlar o vazamento usando overflow.

Também podemos usar restrições mais brandas:

Caso seja definido um tamanho mínimo, o elemento ocupa pelo menos o tamanho definido. Caso seja definido um tamanho máximo, elemento cresce somente até o tamanho definido.

Quando trabalhamos com imagens, os tamanhos vão controlar o seu redimensionamento. Elementos img (que são inline!) tem como tamanho intrínseco o tamanho da imagem (a não ser que sejam definidos tamanhos na marcação HTML).

Pode ser bem difícil controlar corretamente tamanho de imagens usando esses mecanismos. Por sorte, logo poderemos usar flex.

Vazamento / overflow

Podemos controlar a maneira que conteúdo vazado é exibido (ou não).

Floats

Permitem que elementos sejam circundados por outros elementos.

😖 Dica: Faça um favor para você mesmo: não tente criar leiautes usando floats. Designers mais experientes tentaram por mais de 10 anos até que desistiram. Então se criou a especificação flex.

Posição

Indica o método de posicionamento do elemento em relação ao fluxo normal. O valor dessa propriedade indicará como a posição será calculada, em conjunto com as propriedades top, right, bottom e left.

Além disso, podemos indicar modificadores nos três eixos:

Exemplos:


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