Menu

Link HTML: como criar links com a tag a e href

Como o elemento <a> cria links: o atributo href, URLs absolutas e relativas, pular para uma seção da página com #id, links de download, cards clicáveis e os erros que quebram os links.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

Um link é um elemento âncora, <a>, com um atributo href. href é para onde o link vai; o conteúdo entre as tags é o que o leitor clica.

Os navegadores mostram os links em azul e sublinhados e trocam o cursor por uma mãozinha. A última linha mostra por que o href importa: sem ele, <a> é texto comum. Não recebe foco, não é clicável e não tem estilo de link.

URLs absolutas e relativas

O valor de href decide para onde o link vai. As formas principais:

hrefVai para
https://example.com/pageUma URL absoluta: exatamente esse endereço
/aboutabout na raiz do site atual
about.htmlabout.html na mesma pasta da página atual
../index.htmlindex.html uma pasta acima
#pricingO elemento com id="pricing" nesta página
/help#faqA seção faq de outra página deste site
mailto:hi@example.comUm novo e-mail no app de e-mail do leitor
tel:+15551234567Uma ligação, em aparelhos que conseguem ligar

Use URLs absolutas para outros sites e caminhos relativos à raiz (/about) dentro do seu: eles continuam funcionando quando a página que os contém muda de pasta.

<a href="https://www.wikipedia.org/">Wikipedia</a>  <!-- another site -->
<a href="/pricing">Pricing</a>                     <!-- same site, from the root -->
<a href="www.wikipedia.org">Broken</a>              <!-- relative path, not a site! -->

A última linha é o bug de link mais comum. Sem https://, o navegador lê www.wikipedia.org como um nome de arquivo na pasta atual.

Links de e-mail e telefone têm uma página própria: link mailto em HTML.

Qualquer elemento com um id é um destino. Faça o link com # seguido do id, e o navegador rola até ele. Clique nos links da prévia:

Alguns detalhes:

  • O id precisa ser exatamente igual, inclusive maiúsculas e minúsculas. href="#FAQ" não encontra id="faq".
  • href="#top" e href="#" rolam até o topo da página mesmo quando nenhum elemento tem o id top.
  • O seletor :target estiliza a seção para a qual a URL aponta no momento. Numa página real ela fica destacada; a prévia rola sem mudar o endereço, então o destaque não aparece nela.
  • Para fazer um link para uma seção de outra página, adicione a cerquilha à URL dessa página: <a href="/docs/html/table#caption">.

Um cabeçalho sticky ou fixo cobre o topo da seção para onde você pula. scroll-margin-top nos destinos deixa espaço para ele, e scroll-behavior: smooth anima o salto:

Apague a linha scroll-margin-top e clique em Two de novo: o título fica escondido atrás do cabeçalho escuro.

O atributo download pede ao navegador que salve o arquivo em vez de abri-lo. O valor dele, se você informar um, é o nome de arquivo sugerido:

<a href="/files/report-2026.pdf" download>Download the report</a>
<a href="/files/r-8f2a.pdf" download="report.pdf">Download (saved as report.pdf)</a>

download só funciona para arquivos na mesma origem da página (mesmo esquema, host e porta) e para URLs data: e blob:. Para um arquivo em outra origem, mesmo um subdomínio, os navegadores o ignoram e abrem o arquivo como um link normal. O servidor pode forçar o download de qualquer arquivo com o cabeçalho Content-Disposition: attachment.

Quem usa leitor de tela muitas vezes percorre a página de link em link, ouvindo só o texto do link. "Clique aqui" e "Leia mais" não dizem nada.

<!-- Vague: -->
To see our prices, <a href="/pricing">click here</a>.

<!-- Clear: -->
See the <a href="/pricing">pricing plans</a>.

O atributo title mostra uma dica ao passar o mouse, mas não aparece em telas de toque nem para a maioria de quem usa teclado, então não coloque nada importante nele.

Um <a> pode envolver conteúdo block: um título, uma imagem e um parágrafo podem formar um único link. É assim que se fazem cards clicáveis.

display: block torna a caixa inteira clicável, não só o texto. Mantenha o conteúdo do card curto, porque o leitor de tela lê tudo como o nome do link. E nunca coloque outro link ou um botão dentro: elementos interativos não podem ser aninhados em <a>.

Outros atributos da tag a

AtributoO que faz
hrefO destino. Sem ele, <a> não é um link
targetOnde abrir; target="_blank" abre uma nova aba, veja abrir link em nova aba
relA relação com o destino: noopener, nofollow, sponsored, ugc
downloadSalvar o arquivo em vez de abri-lo
hreflangO idioma da página de destino, como dica
referrerpolicyQuanto da URL atual enviar como referenciador

Erros comuns

  • Nenhum esquema numa URL externa. href="www.site.com" é um caminho relativo. Escreva https://.
  • <a href="#"> para uma ação de JavaScript. Rola até o topo e adiciona # à URL. Se clicar não leva a lugar nenhum, use um <button>.
  • Um link dentro de um link, ou um botão dentro de um link. Os dois são HTML inválido: um segundo <a> faz o parser fechar o primeiro antes da hora, e um clique num botão dentro de um link não tem destino claro.
  • Espaços em nomes de arquivo. href="my file.html" costuma funcionar porque o navegador codifica o espaço, mas my-file.html elimina a dúvida.
  • "Clique aqui" como texto do link. Descreva o destino.
  • Diferença de maiúsculas no id. #Pricing e id="pricing" são diferentes.

Perguntas frequentes

Como criar um link no HTML?

Use o elemento âncora: <a href="https://example.com">Example</a>. href é o destino, e o texto entre as tags é o que o leitor clica.

O que significa href?

Hypertext reference, referência de hipertexto. Ele guarda a URL para onde o link aponta: um endereço completo, um caminho no mesmo site como /about, uma seção da página como #pricing ou um esquema como mailto:.

Como fazer um link para uma parte específica da página?

Dê um id ao elemento de destino e faça o link com uma cerquilha: <h2 id="faq">FAQ</h2> e <a href="#faq">FAQ</a>. De outra página, adicione a cerquilha à URL: <a href="/help#faq">.

Por que meu link vai para a página errada quando escrevo www?

Sem https://, o navegador trata www.example.com como um caminho relativo no seu próprio site, então o link vai para algo como yoursite.com/www.example.com. Sempre escreva o esquema em links externos: href="https://www.example.com".

Uma tag a pode conter uma div?

Sim. No HTML5 um <a> pode envolver conteúdo block como uma <div>, um título e um parágrafo, e é assim que se fazem cards inteiros clicáveis. Ele não pode conter outro link, um botão nem qualquer outro elemento interativo.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR