Oii, Angelo! Como você tá?
Obrigada por compartilhar seu código e essa dúvida com a comunidade Alura. Essa parte de posicionamento de elementos, como o footer, é mesmo uma dorzinha comum quando a gente está aprendendo. Mas vamos com calma, porque você já avançou bastante.
O que está acontecendo é que o conteúdo da sua página não está preenchendo toda a altura da tela, então o rodapé fica logo abaixo do conteúdo, mesmo que ele fique "no meio da tela". Isso é esperado quando o <body>
não tem altura suficiente.
Você pode resolver isso com um pequeno ajuste. Aqui vai uma sugestão:
html, body {
height: 100%;
}
E, use flexbox no body
para empurrar o footer
pro final da tela quando o conteúdo for pequeno:
body {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100vw;
background-color: var(--cor-primaria);
color: var(--cor-secundaria);
font-family: var(--fonte-secundaria);
}
main {
flex: 1;
}
O que isso faz:
min-height: 100vh
garante que o body
ocupe a altura inteira da tela;flex: 1
no main
faz ele ocupar todo o espaço disponível entre o header
e o footer
.
Testando aqui deu tudo certo:
Vou deixar aqui o código completo do CSS:
@import url('https://fonts.googleapis.com/css2?family=Krona+One&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
:root {
--cor-primaria: #000000;
--cor-secundaria: #f6f6f6;
--cor-terciaria: #22d4fd;
--cor-linguagens: #f3b700;
--cor-hover: #0e505f;
--fonte-principal: "Krona One", sans-serif;
--fonte-secundaria: "montserrat", sans-serif;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
body {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100vw;
background-color: var(--cor-primaria);
color: var(--cor-secundaria);
font-family: var(--fonte-secundaria);
}
.cabecalho {
padding: 2% 0% 0% 15%;
}
.cabecalho__menu {
display: flex;
gap: 80px;
}
.cabecalho__menu__links {
font-size: 24px;
font-weight: 600;
color: var(--cor-terciaria);
text-decoration: none;
}
main {
flex: 1;
}
.apresentacao {
padding: 5% 15%;
justify-content: space-between;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.apresentacao__conteudo {
width: 593px;
display: flex;
flex-direction: column;
gap: 40px;
}
.apresentacao__conteudo__titulo {
font-family: var(--fonte-principal);
font-size: 36px;
}
.titulo__destaque {
color: var(--cor-terciaria);
}
.apresentacao__conteudo__texto {
font-size: 24px;
}
.texto__linguagens {
color: var(--cor-linguagens);
}
.apresentacao__links {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
gap: 32px;
}
.apresentacao__subtitulo {
font-family: var(--fonte-principal);
font-size: 20px;
}
.apresentacao__links__imagem {
width: 32px;
height: 32px;
}
.apresentacao__imagem {
width: 300px;
height: auto;
border: 10px solid var(--cor-terciaria);
border-radius: 16px;
margin-top: 20px;
}
button {
background-color: var(--cor-primaria);
color: var(--cor-secundaria);
border: 2px solid var(--cor-terciaria);
height: 79px;
width: 280px;
font-size: 24px;
font-weight: 600;
border-radius: 16px;
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
}
button:hover {
background-color: var(--cor-hover);
cursor: pointer;
}
.rodape {
background-color: var(--cor-terciaria);
padding: 15px;
text-align: center;
font-size: 24px;
font-weight: 400;
}
Você está mandando bem, viu? Essas dúvidas fazem parte do processo de aprender e mostram que você está colocando a mão no código de verdade, isso é o que importa.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!