5
respostas

Posicionamento em linha do portfolio

Utilizando o css abaixo as caixas que representam os trabalhos realizados ficam uma sobre a outra. Não entendi o porque. A lógica que utilizei é a seguinte: - Tenho a div de conteúdo com 720px de largura e dentro dela inseri o conteúdo com o portfolio - Ao aplicar o box-sizing: border-box o elemento se adequa para que seu conteúdo, espaçamento interno e borda ocupem a minha largura definida. - Tendo feito isso preciso considerar o espaçamento externo, no caso, margin - Como apliquei margem horizontalmente apenas do lado direito, minha lógica para aplicar largura as minhas 'caixas' seria (sendo n a largura da caixa): n + 16 + n + 16 = 720 para uma linha de caixas - Isso resulta numa largura de 344px para minhas caixas

Há algo que não estou considerando?

.trabalho-realizado {
    border: 8px #000 solid;
    background-color: #FAFFFC;
    padding: 16px;
    margin: 0 16px 16px 0;
    width: 344px;
    display: inline-block;
    box-sizing: border-box;
}
5 respostas

Oi Bruno, só por curiosidade, se você reduzir o width para 343 ou 342, funciona? Ficam 4 caixas em duas linhas?

Quando reduzo a 341px, funciona.

Entendo, neste caso meu chute chegou perto. Acontece que seu layout pode quebrar em alguns casos Bruno por causa do inline-block. Quando você usa esse tipo de display, os espaços em branco no HTML passam a contar na renderização desses elementos.

Como último teste você pode fazer o seguinte, deixar o width novamente como 344px e usar comentários entre os blocos do portfólio.

</div><!--
--><div>

Isso vai fazer com que os espaços em branco sejam desconsiderados e ai você não terá quebras no layouts. Testa pra mim pra ver se é isso mesmo?

É isso mesmo Wanderson! Muito obrigado pelo esclarecimento. Aproveitando, existe alguma boa prática para cenários desse tipo, utilizando-se o inline-block?

Opa Bruno, depende. Era comum minificar os arquivos HTMLs até um tempo atrás, isso evitava esse tipo de coisa já que na minificação os espaços era removidos.

O inline-block tem esse problema chatinho, mas tem alternativas mais legais do que simplesmente usar ele. Uma delas você já conhece, usar floats, mas o float também tem seus problemas. O que fazer?

Temos duas ótimas alternativas, uma mais "antiga" e usual que é usar flexbox (temos curso aqui), para cuidar dessa parte de layout, posicionamento dos blocos na página. A outra mais recente que o flexbox é o grid layout. Eu recomendo olhar as duas.

Não temos curso de grid layout ainda, mas a documentação do MDN é bem legal.

Grid Layout no MDN: https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout

Se o inglês não for um problema, recomento também esse post do CSS-Tricks: https://css-tricks.com/snippets/css/complete-guide-grid/

Recomendo ver primeiro o curso de flexbox antes de ir estudar o grid layout. Flexbox é mais usado e está mais estável que o grid, que é mais recente e não está 100% em todos os navegadores.