Entenda a Propriedade flex-basis no CSS Flexbox

CSSBeginner
Pratique Agora

Introdução

Neste laboratório, os participantes explorarão a propriedade flex-basis no CSS Flexbox através de uma abordagem abrangente e prática. Ao criar um arquivo HTML estruturado e adicionar progressivamente estilos CSS, os alunos obterão experiência prática na compreensão de como flex-basis influencia o dimensionamento inicial dos itens flexíveis dentro de um contêiner.

O laboratório guia os alunos na criação de um layout flexbox, na definição de propriedades do contêiner, na aplicação de flex-basis a itens individuais e na experimentação com diferentes valores. Os participantes aprenderão como flex-basis interage com outras propriedades flexíveis, permitindo que controlem o dimensionamento fundamental e a distribuição de elementos em designs web responsivos.

Criar Arquivo HTML para o Layout Flexbox

Nesta etapa, você criará o arquivo HTML fundamental para explorar a propriedade flex-basis no CSS Flexbox. Configuraremos uma estrutura HTML simples que servirá como base para nossos experimentos de layout flexbox.

Abra o WebIDE e navegue até o diretório ~/project. Crie um novo arquivo chamado flexbox-demo.html usando a interface do WebIDE.

Aqui está a estrutura HTML básica que você usará:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Flexbox flex-basis Demo</title>
    <style>
      /* Os estilos CSS serão adicionados nas etapas subsequentes */
    </style>
  </head>
  <body>
    <div class="container">
      <div class="flex-item item1">Item 1</div>
      <div class="flex-item item2">Item 2</div>
      <div class="flex-item item3">Item 3</div>
      <div class="flex-item item4">Item 4</div>
      <div class="flex-item item5">Item 5</div>
    </div>
  </body>
</html>

Vamos detalhar a estrutura HTML:

  • Criamos um <div> contêiner com a classe container
  • Dentro do contêiner, temos cinco elementos <div> com as classes flex-item e classes de item individuais
  • Essa estrutura nos permitirá demonstrar as propriedades flex-basis nas etapas seguintes

Exemplo de saída ao salvar o arquivo no WebIDE:

File created: ~/project/flexbox-demo.html

Definir o Contêiner Flexbox CSS Básico

Nesta etapa, você aprenderá como criar um contêiner Flexbox CSS básico, adicionando estilos ao arquivo HTML criado na etapa anterior. Abra o arquivo flexbox-demo.html no WebIDE e modifique a seção <style> para definir o contêiner flexbox.

Adicione o seguinte CSS para definir o contêiner flexbox básico:

<style>
  .container {
    display: flex;
    background-color: #f0f0f0;
    border: 2px solid #333;
    padding: 20px;
  }

  .flex-item {
    background-color: #4caf50;
    color: white;
    margin: 10px;
    padding: 20px;
    text-align: center;
  }
</style>

Vamos detalhar as principais propriedades CSS:

  • display: flex; transforma o contêiner em um contêiner flexível
  • background-color e border ajudam a visualizar o contêiner
  • Os estilos .flex-item definem a aparência dos itens flexíveis individuais
  • margin e padding fornecem espaçamento entre os itens

Exemplo de saída ao salvar o arquivo:

Flexbox container styles added to flexbox-demo.html

Ao abrir este arquivo HTML em um navegador, você verá cinco caixas verdes dispostas horizontalmente, demonstrando o layout flexível padrão.

Aplicar a Propriedade flex-basis aos Itens Flex

Nesta etapa, você aprenderá sobre a propriedade flex-basis e como ela controla o tamanho inicial dos itens flexíveis. Abra o arquivo flexbox-demo.html no WebIDE e atualize os estilos CSS para demonstrar flex-basis.

Adicione o seguinte CSS para aplicar flex-basis a itens flexíveis individuais:

<style>
  .container {
    display: flex;
    background-color: #f0f0f0;
    border: 2px solid #333;
    padding: 20px;
  }

  .flex-item {
    background-color: #4caf50;
    color: white;
    margin: 10px;
    padding: 20px;
    text-align: center;
  }

  .item1 {
    flex-basis: 100px;
  }
  .item2 {
    flex-basis: 200px;
  }
  .item3 {
    flex-basis: 150px;
  }
  .item4 {
    flex-basis: 250px;
  }
  .item5 {
    flex-basis: 120px;
  }
</style>

Pontos-chave sobre flex-basis:

  • Define o tamanho principal inicial de um item flexível
  • Pode ser especificado em pixels, porcentagens ou outras unidades
  • Determina o tamanho padrão antes do crescimento ou encolhimento flexível
  • Substitui width em um contêiner flexível

Exemplo de saída ao salvar o arquivo:

Flex items with different flex-basis values added

Ao abrir o arquivo HTML em um navegador, você verá itens flexíveis com larguras iniciais variadas com base em seus valores flex-basis.

Experimentar com Diferentes Valores de flex-basis

Nesta etapa, você explorará várias maneiras de especificar os valores de flex-basis e entender como diferentes unidades e abordagens afetam o dimensionamento dos itens flexíveis. Atualize o CSS em seu arquivo flexbox-demo.html com os seguintes estilos:

<style>
  .container {
    display: flex;
    background-color: #f0f0f0;
    border: 2px solid #333;
    padding: 20px;
  }

  .flex-item {
    background-color: #4caf50;
    color: white;
    margin: 10px;
    padding: 20px;
    text-align: center;
  }

  /* Different flex-basis value types */
  .item1 {
    flex-basis: 100px;
  } /* Fixed pixel width */
  .item2 {
    flex-basis: 20%;
  } /* Percentage of container */
  .item3 {
    flex-basis: auto;
  } /* Based on content */
  .item4 {
    flex-basis: 10rem;
  } /* Using rem units */
  .item5 {
    flex-basis: content;
  } /* Based on content size */
</style>

Observações-chave sobre os valores de flex-basis:

  • Valores em pixels (100px) fornecem uma largura fixa
  • Valores em porcentagem (20%) escalam em relação ao contêiner
  • auto usa o tamanho do conteúdo do item
  • Diferentes unidades como rem oferecem dimensionamento responsivo
  • A palavra-chave content adapta-se ao conteúdo do item

Exemplo de saída ao salvar o arquivo:

Flex items with diverse flex-basis configurations

Ao abrir o arquivo HTML em um navegador, você verá como diferentes valores de flex-basis impactam o dimensionamento e o layout dos itens.

Explorar a Interação de flex-basis com Outras Propriedades Flex

Nesta etapa, você aprenderá como flex-basis interage com outras propriedades flexíveis, como flex-grow e flex-shrink. Atualize o CSS em seu arquivo flexbox-demo.html com o seguinte exemplo abrangente:

<style>
  .container {
    display: flex;
    background-color: #f0f0f0;
    border: 2px solid #333;
    padding: 20px;
    width: 100%;
  }

  .flex-item {
    background-color: #4caf50;
    color: white;
    margin: 10px;
    padding: 20px;
    text-align: center;
  }

  /* Demonstrating flex property interactions */
  .item1 {
    flex-basis: 100px;
    flex-grow: 1;
    flex-shrink: 0;
  }
  .item2 {
    flex-basis: 200px;
    flex-grow: 2;
    flex-shrink: 1;
  }
  .item3 {
    flex-basis: 150px;
    flex-grow: 1;
    flex-shrink: 2;
  }
  .item4 {
    flex: 1 1 250px; /* shorthand for grow, shrink, basis */
  }
  .item5 {
    flex: 2 0 120px;
  }
</style>

Conceitos-chave das interações de propriedades flexíveis:

  • flex-grow: Determina o quanto um item crescerá em relação a outros itens
  • flex-shrink: Controla o quanto um item encolherá em relação a outros itens
  • A abreviação flex combina grow, shrink e basis
  • Diferentes combinações criam comportamentos de layout exclusivos

Exemplo de saída ao salvar o arquivo:

Flex items with complex grow, shrink, and basis interactions

Ao abrir o arquivo HTML em um navegador, você observará como essas propriedades trabalham juntas para criar layouts flexíveis.

Resumo

Neste laboratório, os participantes exploram a propriedade flex-basis no CSS Flexbox, criando uma demonstração abrangente em HTML e CSS. O laboratório começa com a construção de um arquivo HTML fundamental, apresentando um contêiner com múltiplos itens flexíveis, estabelecendo a estrutura estrutural para experimentos de layout flexbox. Os participantes aprendem a definir um contêiner flexbox básico usando CSS, definindo propriedades de exibição, cores de fundo e estilos iniciais para criar um layout responsivo e visualmente envolvente.

O laboratório guia os alunos através da aplicação da propriedade flex-basis aos itens flexíveis, permitindo que eles entendam como essa propriedade controla o tamanho inicial dos elementos flexíveis antes que espaço adicional seja distribuído. Ao experimentar diferentes valores de flex-basis e explorar sua interação com outras propriedades flexíveis, os participantes obtêm insights práticos sobre como gerenciar layouts flexíveis e controlar o dimensionamento de elementos dentro de um contêiner flexbox.