3
respostas

[Dúvida] Botões

A estrutura dos meus botões está errado, não fica como o da professora, ficam grandes e em locais errados. O que estou fazendo de errado?
foto da tela

HTML

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Alura Plus</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <section class="background container">
        <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="Logo do combo">
        <a href="www.alura.com.br" class="container_botao">Assine por 12x de R$ 120,00*</a>
        <a href="www.alura.com.br" class="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>
    </section>
</body>

</html>

CSS

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');

:root {
    --branco-principal: #FFFFFF;
    --cinza-principal: #F9F9F9;
    --cinza-secundario: #C0C0C0;
    --vermelho-efeito: #EC2F46;
    --azul-botao: #167BF7;
    --background: #00030C;
    --fonte-inter:'Inter', sans-serif;

}

body {

    background-color: var(--background);
    color: var(--branco-principal);
}

* {
    margin: 0;
    padding: 0;
}

.background {

    background-image: url("Img/Background.png");
    background-repeat: no-repeat;
    background-size: contain;
}

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

.container_botao {
    background-color: var(--azul-botao);
    color: var(--branco-principal);
    font-family: var(--fonte-inter);
    text-decoration: none;
    border-radius: 8px;
    font-size: 16px;
    padding: 1em;
    display: block;
}
.container_botao_secundario {
    background-color: transparent;
    color: var(--branco-principal);
    font-family: var(--fonte-inter);
    text-decoration: none;
    border: 2px solid var(--branco-principal);
}
.container_aviso {
    color: var(--cinza-principal);
}
3 respostas

Olá, Stephanie, como vai?

Analisando seu código, identifiquei dois problemas que estão causando esse comportamento.

Primeiro problema: elementos soltos dentro do <section>

Na aula, a professora envolve todos os elementos dentro de uma <div> antes de fechar a <section>. Isso é essencial porque o display: grid com grid-template-columns: 50% 50% trata cada filho direto da <section> como um item do grid. Sem a <div>, cada elemento (h1, img, a, p) vira uma coluna separada, causando aquele comportamento estranho de ocupar espaços errados.

Seu HTML deveria ficar assim:

<section class="background container">
    <div>
        <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="Logo do combo">
        <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>

Segundo problema: nomenclatura das classes

Seu CSS define .container_botao e no HTML você está usando a mesma classe com underline simples. O padrão adotado no curso usa dois underlines (__) para elementos filhos, seguindo a metodologia BEM. Repare também que o botão secundário no HTML deve receber as duas classes juntas: container__botao botao_secundario, para herdar os estilos base do botão principal e só sobrescrever o que for diferente.

No CSS, corrija para:

.container__botao {
    background-color: var(--azul-botao);
    color: var(--branco-principal);
    font-family: var(--fonte-inter);
    text-decoration: none;
    border-radius: 8px;
    font-size: 16px;
    padding: 1em;
    display: block;
}

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

Com essas duas correções, a estrutura e a aparência dos botões devem ficar equivalentes ao que a professora apresenta na aula.

Espero ter ajudado.

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Obrigado pelas correções realmente resolveram os problemas que estava tendo.
Eu não sabia que podia usar duas class na mesma como "container__botao botao_secundario", realmente facilita. Uma duvida que tenho é sobre os dois underlines usados, é obrigatório ou mais por uma questão e facilidade, estetica ou organização??

Oi, Stephanie.

Boa pergunta. O uso de dois underlines não é obrigatório, o CSS vai funcionar normalmente com um underline simples, hífens ou qualquer outro padrão que você adotar.

O que acontece é que esse padrão faz parte de uma metodologia chamada BEM, sigla para Block, Element, Modifier. Ela é uma convenção criada para organizar e nomear classes CSS de forma mais legível e escalável, especialmente em projetos maiores, onde muitas pessoas trabalham no mesmo código.

Em projetos pequenos ou de estudo, seguir o BEM é mais uma boa prática do que uma regra rígida. A professora adota esse padrão para que você já vá se acostumando com uma forma de escrita usada no mercado.