Use grid quando você está posicionando conteúdo num layout que você definiu em duas dimensões, como a estrutura de uma página ou um grid de cards com linhas e colunas alinhadas. Use flexbox quando uma única linha ou coluna de itens deve se distribuir pelo próprio conteúdo, como uma barra de ferramentas ou um grupo de botões. Grid é layout primeiro, flexbox é conteúdo primeiro, e eles se aninham numa boa.
Por que os entrevistadores perguntam isso
Essa é uma leitura rápida de se você realmente escreve CSS moderno ou ainda carrega hábitos da era do float. O entrevistador quer uma regra de decisão em vez de uma lista de recursos, além de sinais de que você usa as partes que eliminam JavaScript, como auto fit com minmax para grids responsivos ou gap em vez de gambiarras com margin. Como você responde também sugere quanto do seu código de layout está duplicado entre breakpoints.
Como estruturar sua resposta
- Dê a regra de uma linha: layout em duas dimensões versus distribuição em uma dimensão.
- Nomeie um caso concreto para cada um.
- Mencione que eles se compõem, então dá para aninhar um no outro.
- Acrescente um detalhe moderno como auto fit, minmax ou subgrid.
Exemplo de resposta
Minha regra é que grid serve para quando eu já conheço o formato do layout e estou posicionando coisas nele, e flexbox serve para quando os itens devem resolver os próprios tamanhos ao longo de um eixo. Então a estrutura de uma página com sidebar e coluna de conteúdo, ou um grid de cards em que as linhas precisam se alinhar, isso é grid. Uma barra de ferramentas, um conjunto de chips de filtro, uma linha de botões com algo empurrado para a ponta, isso é flexbox com margin auto ou space between. Eles se aninham bem, então a maioria dos meus componentes é um grid no nível externo e flex dentro de cada célula. O que eu uso o tempo todo é repeat com auto fit e minmax, porque me dá um grid de cards responsivo sem nenhuma media query: as colunas simplesmente se reorganizam quando o container fica estreito. Subgrid é o outro que vale conhecer, já que permite que os internos dos cards se alinhem em todo o grid e não só dentro de cada card.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você construiria um grid de cards responsivo sem uma única media query?
- Que problema o subgrid resolve que grid aninhado não resolve?
- Quando alinhar com gap é melhor do que alinhar com margins?
Mais perguntas para Desenvolvedor Frontend
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas