Como fazer um rodapé no HTML
Coloque o conteúdo de fechamento da sua página num elemento <footer>, normalmente a última coisa dentro do <body>. Assim como <header>, ele não tem aparência padrão; o CSS o transforma numa barra de rodapé:
© imprime o símbolo ©. <small> marca a linha de copyright como letras miúdas, que é o significado dela no HTML, e não só uma fonte menor. As listas de links são listas <ul> de verdade, então a maioria dos leitores de tela anuncia quantos links cada coluna tem.
Mantendo o rodapé embaixo
Numa página com pouco conteúdo, o rodapé fica logo abaixo desse conteúdo, com espaço vazio embaixo dele. A solução é uma coluna flex: o contêiner tem pelo menos a altura da janela, e a área principal pega toda a altura que sobra. A caixa cinza abaixo faz o papel de uma janela do navegador:
Remova flex: 1 do main e o rodapé sobe para logo abaixo do parágrafo. Numa página real, coloque as mesmas regras no <body> com min-height: 100vh (e margin: 0) em vez de uma altura fixa, para que o rodapé fique no fim das páginas curtas e depois do conteúdo nas longas.
Footers dentro de artigos
Um <footer> fecha o article ou section mais próximo, então um post de blog ou um comentário pode ter o seu próprio, com o autor, a data ou as tags:
Os leitores de tela tratam só o footer do nível da página como o landmark contentinfo. Um footer dentro de um artigo é um grupo comum, então ele não compete com o rodapé do site.
Dados de contato com address
Para informações de contato sobre a página ou o seu dono, use <address> dentro do footer. Ele é só para dados de contato (não para qualquer endereço postal do seu conteúdo), e os navegadores o mostram em itálico por padrão:
A quebra de linha dentro do address é um dos bons usos de <br>. Para saber mais sobre links de e-mail, veja a página de link mailto.
O que pode ir num footer
Um footer pode conter links, listas, formulários (um cadastro de newsletter), imagens e um <nav>. Ele não pode conter um <header>, outro <footer> nem um <main>. Um segundo menu no rodapé pode ser um <nav> com um rótulo que o diferencie do principal:
<footer>
<nav aria-label="Footer">
<a href="/privacy">Privacy</a>
<a href="/terms">Terms</a>
</nav>
</footer>
Erros comuns
- Colocar o
<footer>fora do<body>. Tudo o que é visível vai dentro do<body>, inclusive o rodapé. - Usar
position: fixedpara mantê-lo embaixo. Um rodapé fixo cobre conteúdo em telas pequenas e exige padding em todo lugar. Use o padrão da coluna flex. - Usar
<address>para qualquer endereço. Ele é para os dados de contato do autor da página ou do artigo. O endereço de uma loja numa lista de locais é um<p>comum. - Colunas de links montadas com tags
<br>. Use listas<ul>para que a estrutura seja anunciada. - Deixar o ano do copyright fixo. Atualize o ano no seu template, ou imprima-o pelo servidor ou pelo build.
Perguntas frequentes
O que é a tag footer no HTML?
<footer> é um elemento semântico para o conteúdo de fechamento de uma página ou seção: copyright, dados de contato, links relacionados ou informações do autor. É uma caixa block sem estilo padrão.
O que colocar no rodapé de um site?
Os rodapés costumam ter o aviso de copyright, links para páginas legais como privacidade e termos, dados de contato, links de redes sociais e um pequeno mapa do site. Mantenha também a navegação principal em <nav> perto do topo, porque nem todo visitante rola até o fim.
Como manter o footer no final da página?
Transforme o body numa coluna flex com pelo menos a altura da janela (display: flex; flex-direction: column; min-height: 100vh;) e dê ao <main> flex: 1. A área principal então cresce para ocupar o espaço vazio e empurra o rodapé para baixo em páginas curtas.
Como escrever o símbolo de copyright no HTML?
Use a entidade ©, que mostra ©. Você também pode digitar o caractere direto quando a página usa <meta charset="utf-8">. Envolver a linha em <small> a marca como letras miúdas.
Uma página pode ter mais de um footer?
Sim. Cada <article> ou <section> pode ter o seu próprio footer para dados do autor ou tags. Só um footer que não está dentro de article, aside, main, nav ou section é o landmark contentinfo da página para os leitores de tela.