Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Espaçar Elementos em um grid com Flexbox (curso Flexbox: posicione os elementos na tela)

No curso Flexbox: posicione os elementos, no intem 2 arrumando o course map, ao utilizar o display flex e o flex warp o grid do Yuri ficou todo colado (sem espaçamento entre os elementos) e como recurso ele colocou o space-betwen e um margin-top de 1%.

Mas, ao replicar o que ele fez eu apenas setei o display como flex e alicquei flex warp e o display flex gerou o espassamento automáticamente. Alguém sabe dizer o motivo? Será que atualizou algo no css5 referente a flexbox?

E como faço para colocar o espaçamento de acordo com o que eu quiser ao inves de deixar o flex fazer automaticamente?

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Olá Yago, tudo bem?

É possível que as diferenças que você notou em relação ao curso sejam devido a atualizações no CSS e no Flexbox. É importante lembrar que tecnologias web estão sempre em constante evolução e atualização, e isso pode afetar o comportamento de algumas propriedades.

Em relação à sua pergunta sobre como colocar o espaçamento de acordo com o que você quiser, é possível utilizar a propriedade "justify-content" em conjunto com o "flex-wrap". A propriedade "justify-content" permite que você alinhe os itens do seu container de acordo com a sua preferência, e a propriedade "flex-wrap" permite que você defina como os itens serão distribuídos em relação ao espaço disponível.

Por exemplo, se você quiser que os itens sejam distribuídos uniformemente no container, você pode utilizar o valor "space-between" na propriedade "justify-content". Se quiser que os itens sejam distribuídos de forma centralizada, pode utilizar o valor "center". E assim por diante, de acordo com a sua preferência.

.grid-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 1%;
}

Espero ter ajudado.

Um abraço e bons estudos.

Sim, conheço justify-content. Minha dúvida é e se eu quiser setar os espaços, por exemplo quero um espaçamento de exatamente 5px entre os elementos tantohorizontal quanto verticalmente.

solução!

Para definir o espaçamento entre os elementos de forma personalizada, tanto horizontalmente quanto verticalmente, existem algumas abordagens que você pode utilizar.

  1. Espaçamento fixo em pixels: Se você deseja um espaçamento exato de 5 pixels entre os elementos, você pode usar a propriedade margin com um valor fixo. Por exemplo:
.grid-container {
  display: flex;
  flex-wrap: wrap;
}

.grid-item {
  margin: 5px;
}

Dessa forma, cada elemento no grid terá uma margem de 5 pixels em todas as direções, criando o espaçamento desejado.

  1. Espaçamento proporcional com unidades flexíveis: Se você prefere um espaçamento proporcional que se ajuste de acordo com o tamanho do container, pode utilizar unidades flexíveis, como flex-grow e flex-basis. Por exemplo:
.grid-container {
  display: flex;
  flex-wrap: wrap;
}

.grid-item {
  flex-grow: 1;
  flex-basis: 5%;
}

Nesse caso, estamos definindo a propriedade flex-basis como 5%, o que significa que cada elemento ocupará inicialmente 5% da largura do container. O flex-grow: 1 permite que os elementos se expandam e preencham o espaço disponível igualmente.

  1. Espaçamento personalizado usando pseudoelementos: Outra opção é utilizar pseudoelementos para criar o espaçamento desejado. Com a propriedade ::before ou ::after, é possível adicionar um elemento extra entre os itens do grid. Veja o exemplo a seguir:
.grid-container {
  display: flex;
  flex-wrap: wrap;
}

.grid-item {
  position: relative;
}

.grid-item::after {
  content: "";
  position: absolute;
  width: 5px;
  height: 5px;
  background-color: transparent;
  /* Define a posição do espaçamento (exemplo: à direita e abaixo) */
  right: 5px;
  bottom: 5px;
}

Nesse caso, estamos criando um pseudoelemento ::after para cada item do grid e definindo sua posição com base no espaçamento desejado. Lembre-se de ajustar as dimensões e a posição conforme sua preferência.

Essas são apenas algumas opções para criar espaçamento personalizado em um grid com Flexbox. É importante explorar diferentes abordagens e escolher a que melhor se adequa ao seu caso específico.

Espero que essas sugestões possam ajudá-lo a definir o espaçamento de acordo com suas necessidades.

Um abraço e bons estudos.