SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
03.12.2024

Flexbox: Criando Duas Colunas Fixas com um Centro Flexível

Visão Geral Rápida

Utilizar Flexbox em CSS permite criar facilmente um layout com duas colunas de largura fixa e uma coluna flexível no meio. Você só precisa aplicar display: flex; ao contêiner. Para as colunas fixas, aplique flex: 0 0 auto; e defina a largura desejada, enquanto a coluna central pode receber flex-grow: 1; para se ajustar ao espaço restante.

.container { display: flex; }
.fixed { flex: 0 0 100px; } /* Defina a largura desejada para as colunas fixas */
.flexible { flex-grow: 1; } /* A coluna central flexível preencherá todo o espaço disponível */
<div class="container">
  <div class="fixed">Coluna Esquerda</div>
  <div class="flexible">Coluna Central Flexível</div> 
  <div class="fixed">Coluna Direita</div>
</div>

A largura da coluna central se ajustará automaticamente e ocupará todo o espaço disponível entre as colunas fixas.

Entendendo Flex: 0 0 e a Sobrescrição de width

Graças às capacidades do Flexbox, temos uma solução completamente adaptável e acessível para design responsivo. Um elemento com flex: 0 0 [largura] sempre manterá a largura especificada e não mudará quando o conteúdo for esticado ou comprimido. No mundo do Flexbox, flex-basis é preferido em relação a width, fornecendo maior controle e previsibilidade na distribuição de espaço.

Responsividade

Defina uma largura máxima max-width para o contêiner e flex-shrink: 0 para as colunas de largura fixa para evitar compressão excessiva em telas estreitas. Além disso, certifique-se de definir max-width: 100%; para imagens dentro de elementos flex para mantê-las dentro de suas colunas.

Exibição Dinâmica das Colunas

Para aprimorar a experiência do usuário, adicione a capacidade de ocultar ou mostrar colunas com base na preferência do usuário (o JavaScript pode ser útil neste cenário). Delimite as colunas com bordas convincentes para uma melhor visualização, como se você tivesse desenhado linhas divisórias em um papel 😉.

Suporte aos Navegadores

Não se esqueça de verificar o nível de suporte das funcionalidades do Flexbox nos navegadores. Apesar da boa compatibilidade, algumas propriedades podem se comportar de maneira inconsistente em versões mais antigas. Testar o layout em diferentes navegadores ajudará a garantir uma renderização correta.

Aprofundando nos Detalhes

Vamos explorar alguns outros pontos que podem ajudar no futuro:

  • Alinhamento de Elementos: As propriedades justify-content e align-items permitem ajustar finamente a colocação dos elementos.
  • Controle da Flexibilidade: Com flex-basis e a propriedade flex, você pode influenciar a distribuição de espaço quando a largura do contêiner muda.
  • Alternância de Visibilidade: Habilite a ocultação ou revelação de colunas à vontade, mantendo a integridade do layout.

Visualização

Visualize esse mecanismo como uma cortina flexível que estica ou encolhe entre dois pilares robustos e fixos:

| 🏛️ | <--- Cortina Flexível ---> | 🏛️ |

O layout equivalente em HTML seria assim:

<div style="display: flex;">
  <aside style="flex: 0 0 150px;">🏛️</aside> <!-- Pilar Esquerdo -->
  <main style="flex: 1;">Cortina</main>    <!-- A cortina é a parte flexível -->
  <aside style="flex: 0 0 150px;">🏛️</aside> <!-- Pilar Direito -->
</div>

Assim como em um palco de teatro onde uma cortina se estica e se contrai entre duas torres imóveis, em nosso modelo, a coluna central se expande e contrai entre colunas estáticas.

Pratique com Demonstração ao Vivo

Prática é realmente a chave para dominar novos conhecimentos. Você pode conferir um exemplo de layout no JSFiddle: Exemplo de Layout Flexível Interativo. Explore vários cenários:

  • Fundamentos: Um exemplo de layout simples com colunas fixas e flexíveis.
  • Mudando a Coluna Central: Veja como as mudanças de conteúdo afetam a largura da coluna flexível.
  • Responsividade: Observe como o layout se comporta ao redimensionar a janela do navegador.

Adicione Seu Toque Pessoal

Para dar mais individualidade ao seu layout, algumas inspirações em CSS podem melhorar significativamente sua estética:

  • Aplique border-left e border-right à coluna central para um visual mais vívido.
  • Ajuste margin e padding para dar aos elementos o espaço de que precisam.
  • Adicione media queries para alterar o design em diferentes dispositivos, garantindo variedade em seu projeto.

Recursos Úteis

  1. Guia Completo do Flexbox | CSS-Tricks
  2. Princípios Básicos do Flexbox | MDN
  3. Flexbox em CSS | W3Schools
  4. Criando Gráficos de Pizza em CSS: Simples e Conveniente com SVG — Smashing Magazine
  5. Quando Itens do Flexbox Enrolam, o Contêiner Não Aumenta Sua Largura | Stack Overflow
  6. Flexbox | Codrops
  7. Guia Visual das Propriedades do Flexbox em CSS3 | DigitalOcean

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!