:visited

:visited é uma Pseudo-classe do CSS para indicar se o link em questão já foi visitado pelo usuário. Por questões de privacidade, os styles que podem ser modificados usando este seletor são muito limitados.

/* Seleciona qualquer <a> que poderá ser visitado */
a:visited {
  color: green;
}

Styles definidos pela pseudo-classe :visited vão ser substituidos por qualquer pseudo-classe relacionada ao link subsequente (:link, :hover, ou :active) que tenha ao menos uma especificação igual. Para estilizar links apropriadamente, garantindo assim seu funcionamento adequado, ponha a regra :visited depois da regra :link mas antes das regras :hover e :active , Pode-se definir pela ordem LVHA: :link:visited:hover:active.

Restrições de Estilo

Por razões de privacidade, navegadores limitam estritamente quais estilos você pode aplicar usando esta pseudo-class, como elas podem ser usadas:

Nota: Para mais informações quanto a essas limitações e as razões por trás delas, veja Privacy and the :visited selector. Obs: No momento estará apenas disponível em inglês.

Syntaxe

<!DOCTYPE html>
<html>
<head>
    <title>Exemplo de uso do seletor :visited</title>
    <style type="text/css">
        a {
            background-color: white;
            border: 1px solid white; }
        a:visited {
            background-color: lightblue;
            border-color: cyan;
            color: darkblue; }    
    </style>
</head>
<body>
    <a href="">Você já visitou este link?</a><br>
    <a href="">Você já visitou este link.</a>
</body>
</html>

Exemplo

Propriedades que de alguma forma não tenha cor ("color") definida, ou seja transparente, não podem ser modificadas como o :visited. Das  propriedades que podem ser definidas por essa pseudo-classe, seu navegador provavelmente terá por padão valores para color e column-rule-color somente. Portanto, se você quiser modificar outras propriedades, você necessitará pré-definir os valores fora do seletor :visited.

HTML

<a href="#">Você já visitou este link?</a>
<br>
<a href="">Você já visitou este link.</a>

CSS

a {
  /* Specifica non-transparent por padrão para algumas 
     propriedades, permitindo-os a serem estilizados pelo 
     estado :visited */
  background-color: white;
  border: 1px solid white;
}

a:visited {
  background-color: yellow;
  border-color: hotpink;
  color: hotpink;
}

Resultado

Especificações

Especificações Status Comentário
HTML Living Standard
The definition of ':visited' in that specification.
Padrão em tempo real  
Selectors Level 4
The definition of ':visited' in that specification.
Rascunho atual Sem mudança.
Selectors Level 3
The definition of ':visited' in that specification.
Recomendação Sem mudança.
CSS Level 2 (Revision 1)
The definition of ':visited' in that specification.
Recomendação Eleva a restrição para aplicar apenas :visited ao elemento <a>. Permite que os navegadores restrinjam seu comportamento por motivos de privacidade.
CSS Level 1
The definition of ':visited' in that specification.
Recomendação Definição inicial.

Compatibilidade com Navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
:visitedChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 3.5Safari Full support 1WebView Android Full support 4.4Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android ?
Restrict CSS properties allowed in a statement using :visited for privacyChrome Full support 6Edge Full support 12Firefox Full support 4IE Full support 8Opera Full support 15Safari Full support 5WebView Android Full support 37Chrome Android Full support 18Firefox Android Full support 4Opera Android ? Safari iOS Full support 4.2Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown

Veja também (inglês)