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

Duvida: Desafio 1

Não entendo por que nao centralizou a div

Eu escrevi assim:

display: flex; justify-content: center;

o codigo todo ficou assim:

HTML

<body>
    <main>
        <div>
            <p>Me centraliza!</p>
        </div>
    </main>
</body>

CSS

body {
    background-image: url("https://alura-start-public.s3.amazonaws.com/alura%2B/bg---alura-.png");
    background-repeat: no-repeat;
    background-size: cover;
    font-family: 'Fjalla One', sans-serif;
}

main {
    height: 100vh;
    width: 100vw;
}

div {
    width: 240px;
    height: 110px;
    font-size: 36px;
    font-weight: bold;
    background-color: #fff;
    border-radius:4px;
    padding: 0 10px;
    background-image: linear-gradient(315deg, #4dccc6 0%, #96e4df 74%);
    box-shadow: 4px 4px 6px 0 rgba(255, 255, 255, .3),
    -4px -4px 6px 0 rgba(116, 125, 136, .2),
    inset -4px -4px 6px 0 rgba(255, 255, 255, .2),
    inset 4px 4px 6px 0 rgba(0, 0, 0, .2);
    display: flex;
    justify-content: center;
}
2 respostas
solução!

Olá Rebeca, tudo bem?

O que ocorre é que para modificar o alinhamento de elementos filhos ou flex itens, precisamos aplicar propriedades no Flex Container .

No código disponibilizado na atividade, o Flex Container é o elemento <main>, pois é nele que já está sendo aplicado a propriedade display: flex. E o elemento filho alvo que queremos alinhar é a <div>, que contém o parágrafo "Me centraliza!"

Sendo assim, as propriedades devem ser aplicadas <main> e não na <div>. O código completo do container ficará assim:

main {
    height: 100vh;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
}

Usa-se o justify-content: center; para alinha horizontalmente e o align-items: center; para alinhar verticalmente.

Aplicando essas propriedades em conjunto com o display: flex na <div> como você fez, o parágrafo irá se alinhar dentros das dimensões dessa <div>, ou seja, esse espaço que possui o background em azul e não se alinhará na página em si, que é o objetivo da atividade.

Espero ter ajudado, em caso de dúvidas fique a vontade para perguntar.

Abraços e bons estudos! :)

Ola Rebeca, verifiquei seu código.

O que acontece é que a propriedade display: flex , precisa estar dentro do elemento pai que no caso é a main, ai você consegue manipular os elementos filhos.

Ficaria mais ou menos assim:

html

<body>
    <main> //elemento pai
        <div> //elemento filho
            <p>Me centraliza!</p>
        </div>
    </main>
</body>

css

body {
    background-image: url("https://alura-start-public.s3.amazonaws.com/alura%2B/bg---alura-.png");
    background-repeat: no-repeat;
    background-size: cover;
    font-family: 'Fjalla One', sans-serif;
}

main {
    height: 100vh;
    width: 100vw;
    display: flex;
    justify-content: center;
}

div {
    width: 240px;
    height: 110px;
    font-size: 36px;
    font-weight: bold;
    background-color: #fff;
    border-radius:4px;
    padding: 0 10px;
    background-image: linear-gradient(315deg, #4dccc6 0%, #96e4df 74%);
    box-shadow: 4px 4px 6px 0 rgba(255, 255, 255, .3),
    -4px -4px 6px 0 rgba(116, 125, 136, .2),
    inset -4px -4px 6px 0 rgba(255, 255, 255, .2),
    inset 4px 4px 6px 0 rgba(0, 0, 0, .2);
}