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

Alinhamento de textos e imagens

Olá, não estou conseguindo alinhar o texto destas imagens de forma que fiquem retas uma em relação a outra. E não estou conseguindo definir um background apenas para a parte dos itens da lista no HTML. Como posso arrumar isto? (obs: tive que reduzir o tamanho das imagens em outro comando, não sei se isto atrapalha :/)

o código HTML

<main>
        <ul class="produtos">
            <li>
                <h2>Lingerie</h2>
                <img src="produtos.jpeg">
                <p class="produto-descricao"> Robe chiquerrimo </p>
                <p class="produto-preco">R$ 65,00</p>
            </li>
            <li>
                <h2>Calcinha</h2>
                <img src="produtos.jpeg">
                <p class="produo-descricao"> Calcinhas mega confortáveis e lindas</p>
                <p class="produto-preco">R$ 25,00</p>
            </li>
            <li>
                <h2>Sutiã</h2>
                <img src="produtos.jpeg">
                <p class="produto-descricao">Detalhes dessa coleção amarela porque é um caso de amor</p>
                <p class="produto-preco">R$20,00</p>
            </li>
        </ul>
    </main>

E o código do CSS

.produtos{
    width: 940px;
    margin: 0 auto;
    padding: 50px 0;

}

.produtos li{
    display: inline-block;
    text-align: center;
    width: 30%;
    vertical-align: top
    margin: 0 1.5%;
    padding: 30px 20px;
    box-sizing: border-box;
    background-color: #ffbdc7
}

.produtos img{
    max-width:250px;
    max-height:250px;
    width: auto;
    height: auto;
}

.produtos h2{
    font-size: 30px;
    font-weight: bold;
}


.produto-descricao{
    font-size: 18px;
}

.produto-preco{
    font-size: 22px;
    font-weight: bold;
    margin-top: 10px;
}

Como posso resolver?

8 respostas

Olá André, tudo bem?

Você pode fazer isso com o flexbox, mas a maneira mais fácil, por assim dizer, é a seguinte:

Resete o estilo padrão do CSS.

*{
  margin: 0;
  padding: 0;
}

E depois adicione um padding-top na classe "produto-descricao".

.produto-descricao{
  font-size: 18px;
  padding-top: 30px; //propriedade adicionada
}

Isso deve resolver o seu problema.

Espero ter ajudado!

Então amigo, eu usei o Reset Css para resetar todo o Css padrão (o código que ensinam no curso) e adicionei o padding-top que vc falou mas não mudou em nada :/

Eu tenho que usar este código de reset do Css em outra tag ou geral? Como eu posso fazer isto com o flexbox?

Obg :D

Olha, pelo o que eu estou vendo, aqui está alinhado certinho (segue um print abaixo). Tem como mandar um print também de como você quer esse alinhamento?

https://i.imgur.com/PCy5hVG.png

Então amigo, eu aparentemente consegui resolver. Tive que diminuir o texto da descrição (que estava na caixa do item) e ai resolveu. Mas vou mandar um print de como ele fica se eu aumento o texto! Ai se vc souber resolver vai me ajudar muito :D

1º Como eu "arrumei" para ficar alinhado https://imgur.com/IkVtX8W

2º Como estava e como eu queria deixar alinhado https://imgur.com/ZqM8AFE

Abraços

Tem como você colocar seu código no Google Drive e mandar por aqui? Pois aqui continua alinhado mesmo se eu aumentar o texto.

Abraços!

Então amigo aqui está!

https://drive.google.com/drive/folders/1P-K0zGrRmpCIhXNBFZqSpc6ejRtUlQCq?usp=sharing

O que eu estou dizendo de alinhamento é do tamanho da box na parte superior. Eu quero poder aumentar o texto e configurar o tamanho da box para que elas fiquem alinhadas no top da forma que aparece nesta imagem: https://imgur.com/IkVtX8W

Mas aumentando o texto aparece desta forma aqui: https://imgur.com/vMT11fk

É isto que gostaria de arrumar e não acho de jeito nenhum como :/

Agradeço a atenção! Bom dia e abraços

solução!

Acho que descobri seu problema.

Seu CSS está com um pequeno erro, o "semi-colon expected". Eu o corrigi aqui e não imaginei (e também esqueci de avisar) que poderia ser a solução.

.produtos li {
        display: inline-block;
        text-align: center;
        width: 30%;
        vertical-align: top /*aqui está faltando o ponto e virgula*/
        margin: 0 1.5%;
        padding: 30px 20px;
        box-sizing: border-box;
        background-color: #ffbdc7;
}

Agora, se aumentar o texto, as ul's continuarão alinhadas por cima.

https://i.imgur.com/dZicEgL.png?1

Espero ter ajudado!

Nooossa muito obrigado amigo! Vacilei demais de esquecer o ponto e vírgula. Acabou que você me ajudou a aprender a alinhar todas as box para qualquer tamanho de texto, valeu demais :D

Abraços