1
resposta

Tamanho dos "boxes" dos produtos uniforme

No caso apresentado a descrição de todos os produtos ocupava apenas 2 linhas e as imagens eram do mesmo tamanho. Então ao só colocar a borda todos os retângulos ficam do mesmo tamanho, o que não aconteceria caso uma descrição fosse bem maior que a outra, correto? Neste caso, como eu poderia fazer para garantir que todos os boxes ficassem do mesmo tamanho?

1 resposta

Olá Lucas, tudo bem?

Exatamente! Caso uma descrição fosse maior que a outra, os retângulos não ficariam do mesmo tamanho.

Usando o contexto dos elementos da aula, uma das formas de solucionar essa questão, seria primeiramente substituindo o display: inline-block dos .produtos li por display: table-cell. O código ficará assim:

.produtos li {
    display: table-cell;
    text-align: center;
    width: 30%;
    vertical-align: top;
    margin: 0 1.5%;
    padding: 30px 20px;
    box-sizing: border-box;
    border: 2px solid #000000;
    border-radius: 10px;
}

O display: table-cell faz com que os elementos tenham um comportamento bem semelhante a de células de uma tabela, isso fará com que os 3 produtos, independente do conteúdo, fiquem com o mesmo tamanho em relação a largura e altura.

Entretanto, uma das característica dessa propriedade, é desconsiderar o margin, fazendo com que o espaçamento entre um produto e outro seja nulo (eles ficam grudados).

Para resolver isso, nós excluiremos o margin: 0 1.5% dos .produtos li e colocaremos a propriedade border-spacing: 20px, que define a distância entre as bordas das células adjacente. Ela será especificada no elemento pai, que por sua vez, engloba todos os produtos. Dessa forma:

.produtos {
    width: 940px;
    margin: 0 auto;
    padding: 50px 0;
    border-spacing: 20px;
}

Espero ter ajudado, qualquer dúvida só falar. Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software