Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Posicionamento da imgem e texto

Dado o HTML:

<html>

<head>
    <title>Alura Plus</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="styles.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
</head>

<body>
    <section class="principal container">
        <div class="container__caixa">
            <h1 class="container__titulo">Com o Combo+, você pode aproveitar a Alura+ e o Alura Língua por um preço
                único.</h1>
            <img src="img/Combo.png" alt="O combo+ é a junção do alura+ e o alura língua" class="container__imagem">
            <a href="www.alura.com.br" class="container__botao">Assine por 12x de R$ 120,00*</a>
            <a href="www.alura.com.br" class="container__botao botao_secundario">Assinar somente o Alura+</a>
            <p class="container__aviso">*O preço pode variar caso a assinatura seja feita em outros planos.</p>
        </div>
    </section>

    <section>
        <img src="img/Plataformas.png" alt="Um monitor e um celular com o alura plus aberto" class="secundario__imagem">
        <div class="container__descricao">
            <h2 class="descricao__titulo">Assita do seu jeito</h2>
            <p class="descricao__texto">Aproveite a tela grande da TV ou assista no tablet, laptop, celular e outros aparelhos. Nossa seleção de cursos não para de crescer.</p>
        </div>
    </section>
</body>

</html>

Eo CSS:

:root {
    --branco-principal: #FFFFFF;
    --cinza-secundario: #C0C0C0;
    --botao-azul: #167BF7;
    --cor-de-fundo: #00030C;
    --fonte-principal: 'Inter';
}

body {
    background-color: var(--cor-de-fundo);
    color: var(--branco-principal);
    font-family: var(--fonte-principal);
    font-size: 16px;
    font-weight: 400;
}

* {
    margin: 0;
    padding: 0;
}

.principal {
    background-image: url("img/Background.png");
    background-repeat: no-repeat;
    background-size: contain;
    align-items: center;
    text-align: center;
}

.container {
    height: 100vh;
    display: grid;
    grid-template-columns: 50% 50%;
}

.container__botao {
    background-color: var(--botao-azul);
    border-radius: 5px;
    padding: 1em;
    color: var(--branco-principal);
    display: block;
    text-decoration: none;
    margin-bottom: 1em;
}

.botao_secundario {
    background-color: transparent;
    border: 2px solid var(--branco-principal)
}

.container__aviso {
    font-size: 12px;
    color: var(--cinza-secundario);
}

.container__titulo {
    font-size: 28px;
    font-weight: 700;
}

.container__imagem {
    margin: 1em 0 2em 0;
}

.container__caixa {
    margin: 0 6em;
}

.secundario__imagem {
    align-items: center;
    margin: 0 10em;
}

.descricao__titulo {
    font-weight: 700;
    font-size: 48px;
    color: var(--branco-principal);
    margin-bottom: 0.1em;
}

.descricao__texto {
    color: var(--cinza-secundario);
}

Estou tendo o problema de que minha imagem e meu texto não estão ficando um ao lado do outro e sim um abaixo do outro como no print abaixo que vou enviar:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como faço para resolver isso?

![](![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/6558447/5ce3b695-4e7d-41eb-aeac-98c1e16e4fed.png)  )

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, Rafael! Tudo bem?

Obrigado por compartilhar seu código e a imagem. Esse é um desafio bem comum quando estamos posicionando elementos, mas a solução é mais simples do que parece!

O Problema

O motivo do seu texto ficar embaixo da imagem é que a tag <section> (que é a "mãe" da imagem e do texto) não sabe que precisa dividi-los em colunas. Por padrão, o navegador simplesmente empilha os elementos (<img> e <div>) um sobre o outro.

A Solução

Você já resolveu isso perfeitamente na sua primeira seção, quando usou a classe container. Veja o seu próprio CSS:

.container {
    height: 100vh;
    display: grid;
    grid-template-columns: 50% 50%;
}

Esse display: grid e grid-template-columns: 50% 50% é que faz a mágica de criar as duas colunas lado a lado.

Para arrumar sua segunda seção, basta adicionar a classe container nela também! Assim:

<section class="container">  <!-- Adiciona aqui a class container-->
    <img src="img/Plataformas.png" ... >
    <div class="container__descricao">
        ...
    </div>
</section>

Por fim, sua primeira seção (.principal) tem um align-items: center; para centralizar o conteúdo verticalmente. Para que a segunda seção também tenha esse alinhamento, você pode adicionar essa propriedade diretamente na regra .container, assim ela se aplica às duas seções:

No seu CSS, mude a regra .container para isto:

.container {
    height: 100vh;
    display: grid;
    grid-template-columns: 50% 50%;
    align-items: center; /* Adicione esta linha */
}

Parabéns por estar praticando! Continue assim!

Bons estudos!

Sucesso

Imagem da comunidade