08 - CSS: Display
Vimos anteriormente que todos os nossos elementos funcionam como uma caixa e que essa caixa tem um certo tamanho (largura e altura). Vamos entender agora como essas caixas são posicionadas na tela e como alterar esse posicionamento com a propriedade display.
Block
Algumas tags do nosso HTML não permitem que outros elementos fiquem lado a lado. Elas ocupam todo o espaço da linha mesmo que o conteúdo não precise desse espaço. A tag div é um ótimo exemplo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
Kelvin
</div>
<div>
Kraken
</div>
</body>
</html>
No exemplo acima os nomes serão renderizados um acima do outro, isso acontece porque o comportamento padrão da div é block. Isso significa que a tag irá ocupar todo o espaço da linha não permitindo que outros elementos fiquem ao seu lado.
Inline
Ao contrário da opção block os elementos inline ocupam apenas o espaço necessário pelo seu conteúdo permitindo assim que outros elementos ocupem o espaço restante na linha. Vamos ver um exemplo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<span>
Kelvin
</span>
<span>
Kraken
</span>
</body>
</html>
A tag span tem por padrão o comportamento inline, isso significa que a tag irá ocupar apenas o espaço necessário para o texto fazendo com que os nomes sejam renderizados lado a lado.
Alterando o comportamento padrão:
Podemos facilmente modificar o comportamento padrão de uma tag usando a propriedade display, vamos voltar ao primeiro exemplo e ver como deixar nossas div's ficarem lado a lado como um elemento inline:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
Kelvin
</div>
<div>
Kraken
</div>
</body>
</html>
Vamos sobrescrever o comportamento da nossa tag div usando o display:
div {
display: inline;
}
Com isso a tag div irá se comportar como um elemento inline deixando os nomes um ao lado do outro.