1
resposta

Faça como eu fiz: estilizando ofertas e parceiros

Exercício um) Crie e estilize a seção de ofertas, incluindo a estrutura do carrossel usando CSS, mas deixando a funcionalidade como um dever de casa.

    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--cor-secundaria-light);
    justify-content: center;
    gap: var(--gap-xl);
    width: 100%;
    padding: var(--padding-5xl) 0;
}

.ofertas-titulo {
    color: var(--cor-primaria-light);
}

.carrossel {
    display: flex;
    justify-content: space-between;
    gap: var(--gap-l);
    position: relative;
    overflow: hidden;
}

.carrossel-item {
    background-color: var(--cor-neutra-light);
    border-radius: 1rem;
    padding: var(--padding-m) var(--padding-s);
    display: flex;
    flex-direction: column;
    align-content: center;
    text-align: center;
    gap: var(--gap-m);
}

.carrossel-descricao {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--padding-m);
}

.carrossel-nome, .carrossel-preco {
    display: flex;
    flex-direction: column;
    text-align: center;
    justify-content: center;
    font-family: var(--font-poppins);
    font-size: var(--font-size-xm);
    font-weight: 600;
}

.carrossel-item > p {
    display: flex;
    justify-content: center;
}

.carrossel-nav {
    border: none;
    border-radius: 50%;
    padding: var(--padding-m);
    background-color: var(--cor-primaria-light);
    color: var(--cor-neutra-light);
}

.carrossel-button {
    position: absolute;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    top: 45%;
}

Exercício dois) Estilize a seção de marcas parceiras, aplicando o alinhamento e a disposição dos elementos utilizando flexbox.

.parceiros {
    background-color: var(--cor-neutra-light);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-m);
    width: 100%;
    padding: var(--padding-xxl) 0;
}

.parceiros-titulo {
    color: var(--cor-primaria-light);
    margin-bottom: 1.25rem;
}

.lista-parceiros {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap-xxxl);
}

.lista-parceiros > div {
    flex: 1 0 100px;
    width: 100%;
}

.lista-parceiros > div > img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    transition: transform 0.3s ease;
}

Exercício três) Adicione um efeito de hover nas imagens dos parceiros, diferenciando o estilo entre os elementos ímpares e pares.

.lista-parceiros > div > img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  transition: transform 0.3s ease;
}

.lista-parceiros > div:hover img {
  transform: scale(1.1);
  box-shadow: 0 0 20px var(--cor-primaria-box-shadow);
}

Exercício quatro) Utilize a pseudo-classe :nth-child para aplicar diferentes estilos com base na posição dos elementos.

.lista-parceiros > div:nth-child(odd):hover img {
    transform: scale(1.1);
    box-shadow: 0 0 20px var(--cor-primaria-box-shadow);
}

.lista-parceiros > div:nth-child(even):hover img {
    transform: scale(1.1);
    box-shadow: 0 0 20px var(--cor-secundaria-box-shadow);
}
1 resposta

Oi, Guilherme! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código ficou muito bem estruturado! Você aplicou de forma excelente os conceitos de flexbox, além de usar variáveis CSS, o que deixa o código mais organizado e fácil de manter.

Uma dica interessante para o futuro é explorar a propriedade aspect-ratio para garantir que os elementos mantenham proporções, especialmente em carrosséis ou imagens. Veja este exemplo:


.carrossel-item {
    aspect-ratio: 1/1;
}

Esse código faz com que o item sempre tenha a mesma largura e altura, mantendo um formato quadrado, independentemente do tamanho da tela.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!