Skip to main content

Command Palette

Search for a command to run...

[CSS] Footer no final da página

Updated
1 min read
[CSS] Footer no final da página

Ao adicionar um footer em uma página, geralmente ele age como esperado e é posicionado no final da tela. Mas se sua página for menor que a tela do usuário, o footer vai ficar no meio do caminho. Muito feio.

Para ajeitar isso, é necessário ajustar o tamanho do html e body para o máximo da tela e colocar uma margem dinânica no footer.

body {
  min-height: 100vh; // Fallback
  min-height: 100dvh; // Compatibilidade com mobile
  display: flex;
  flex-direction: column;
}

.footer{
  margin-top: auto;
}
<body>
    <header class="header">
        <!-- Barra de navegação -->
    </header>
    <main class="page">
        <!-- Conteúdo -->
    </main>
    <footer class="footer">
        <!-- Rodapé -->
    </footer>
</body>

Note que a unidade dvh é usada para responsividade com mobile, que pode mudar seu viewport devido às diversas barras de navegação nativas.
Leia mais sobre isso aqui.

Essa é uma solução simples, mas que muitas vezes não é intuitiva de implementar.