Flexbox (Parte 1): A Magia de Alinhar Elementos Lado a Lado Facilmente
Olá, equipa! Preparados para uma pequena revolução?
Lembram-se de como fizemos os itens do nosso menu ficarem lado a lado na Aula #4? Usámos uma propriedade chamada float: left;. Era a forma "antiga" de o fazer. Funcionava, mas era como usar fita-cola: frágil e cheia de efeitos secundários estranhos.
Hoje, vou apresentar-vos a solução moderna, poderosa e mágica para alinhar elementos: o Flexbox. O Flexbox é um modelo de layout do CSS desenhado para organizar, alinhar e distribuir o espaço entre itens num contentor, mesmo quando o tamanho desses itens é desconhecido ou dinâmico.
Nesta primeira parte, vamos entender o conceito principal do Flexbox e aprender a usar as suas propriedades mais importantes para organizar o conteúdo horizontalmente.
Parte 1: O Conceito Principal - O Contentor e os Itens
Para o Flexbox funcionar, precisamos de duas coisas:
O Contentor Flex (Flex Container): Um elemento "pai" que vai conter os elementos que queremos alinhar. A magia começa quando aplicamos
display: flex;a este pai.Os Itens Flex (Flex Items): Os elementos "filhos" diretos que estão dentro do contentor. Assim que o pai se torna "flex", os filhos ganham super-poderes.
`
`
Parte 2: Mão na Massa! Criando o Nosso Primeiro Layout Flex
Vamos criar um exemplo simples no nosso index.html para praticar. Adicionem este código dentro da vossa tag <main>:
<h2>Exemplo de Flexbox</h2>
<div class="flex-container">
<div class="flex-item">Item 1</div>
<div class="flex-item">Item 2</div>
<div class="flex-item">Item 3</div>
</div>
Agora, vamos ao nosso estilos.css para adicionar o estilo e a magia do Flexbox.
.flex-container {
background-color: #ddd;
padding: 10px;
border: 2px solid #aaa;
/* A LIGAÇÃO MÁGICA DO FLEXBOX */
display: flex;
}
.flex-item {
background-color: dodgerblue;
color: white;
padding: 20px;
border: 1px solid navy;
margin: 5px;
}
Guardem os ficheiros e vejam o resultado! Os três itens, que normalmente estariam um em cima do outro, agora estão perfeitamente alinhados lado a lado. Isso é por causa de uma única linha: display: flex;.
Parte 3: As Propriedades do Contentor
Agora que o nosso contentor é "flex", podemos dar-lhe ordens sobre como alinhar os seus filhos.
justify-content: Controla o alinhamento horizontal. `
*flex-start: Agrupa os itens no início (padrão). * flex-end: Agrupa os itens no fim. * center: Agrupa os itens no centro. * space-between: Distribui os itens uniformemente, com o primeiro no início e o último no fim. * space-around`: Distribui os itens com espaço igual à volta de cada um.
*Experimentem mudar o `justify-content` no vosso `.flex-container` para `center` ou `space-between` e vejam o que acontece!*
align-items: Controla o alinhamento vertical. Se os itens tiverem alturas diferentes, esta propriedade é crucial.flex-start: Alinha os itens no topo.flex-end: Alinha os itens na base.center: Alinha os itens verticalmente no centro (muito útil!).
gap: A forma moderna de adicionar espaço entre os itens. Em vez demarginnos itens, podemos simplesmente adicionargap: 10px;ao contentor para criar um espaço de 10px entre cada item.
Conclusão
Uau! Com apenas algumas propriedades, já temos um controlo sobre o nosso layout que antes parecia impossível. Hoje arranhámos a superfície do poder do Flexbox.
Lembrete: A magia começa com display: flex; no elemento pai. Depois, usamos justify-content e align-items para controlar o alinhamento dos filhos.
Já conseguimos alinhar os nossos itens, mas e se quisermos que eles cresçam, encolham ou quebrem para a linha de baixo? Na segunda parte sobre Flexbox, vamos explorar as propriedades dos itens e aprender a criar layouts de cartões totalmente responsivos. Até lá!
Comentários
Enviar um comentário