Por que isso não funciona?

Existe alguma razão pela qual isso não funciona no Internet Explorer ou no Chrome:

   A {font-weight: bold; color:black;} A:visited {font-weight: normal; color: black; } .Empty {font-weight: bold; color: black; }    click me   

O link que eu clico nunca vai ao normal e só fica em negrito. Em alguns outros navegadores, funciona.

Editar : alterar maiúsculas e minúsculas não afetou.

Editar : alterar um para um: link não afetou.

Editar : mudando de cor funciona, apenas não é o peso da fonte.

Editar : a solução alternativa era alterar a acessibilidade para ignorar colors da web. Eu não tenho access à fonte, então eu tive que fazer assim.

   

Na verdade, isso não tem nada a ver com a diferenciação de maiúsculas e minúsculas. Este é um recurso de segurança. A funcionalidade de :visited pseudoclass :visited foi restrita em muitos navegadores modernos (Fx4, IE9, Chrome) para impedir a exploração de CSS: leia sobre isso aqui .

Hoje em dia, getComputedStyle() nesses navegadores geralmente retorna valores para links visitados como se eles não fossem visitados. No entanto, posso simplesmente imaginar contornar isso: usando font-weight para links visitados, a largura do elemento muda para que os navegadores permitam alterar font-weight para :visited links :visited não consertariam a falha de segurança.

Portanto, não há solução alternativa para esse problema.

O CSS em si não faz distinção entre maiúsculas e minúsculas, mas se o arquivo HTML que usa esse estilo tiver uma declaração XML e um tipo de documento XHTML, esse CSS não funcionará, porque as marcações diferenciam maiúsculas de minúsculas. Você terá que definir as tags “a” para minúsculas.

Explicado aqui: http://reference.sitepoint.com/css/casesensitivity

Talvez tente alterar o atributo de cor e ver se isso tem algum efeito.

Para solucionar problemas, talvez você queira tentar utilizar as ferramentas do desenvolvedor no chrome para ver qual estilo é aplicado.

Você precisa ter declarações separadas para um: link, um: visitado, um: ativo, etc.

Remova o primeiro estilo que não contenha dois pontos. Está superando. Substitua por um link.

Eu corrigi este problema para o meu site, salvando os links em um cookie ou session e, em seguida, adicionar manualmente uma class visitada ao meu script de navegação php. Basta fazer um array uri assim:

 //Script that loads on every page to save visited pages $_COOKIE['uris'] = array ('uri/page1', 'uri/page2', 'uri/page3'); //The below script must reside on every navigation script $uris = $_COOKIE['uris']; if(in_array($link['uri'], $uris) { echo ''.$link['name'].''; } else { echo ''.$link['name'].''; } 

O problema tem a ver com o sniffing do histórico, a alteração das propriedades do css é desativada para links visitados devido a problemas de privacidade.

Eu vim com a seguinte solução para alcançar o efeito desejado. É possível alterar a cor de fundo do link visitado.

A solução é muito simples:

  1. defina uma imagem de fundo no link com a mesma altura que o seu link e largura de 1 px e repita a imagem horizontalmente
  2. a imagem tem a mesma cor que o fundo do link
  3. faça um pixel dessa imagem transparente, no meio vertical
  4. em: estado visitado basta alterar a cor de fundo desse link para a cor do texto do link
  5. Apenas uma linha da cor de fundo ficará visível, porque a imagem de fundo está mascarando-a

Aqui está um exemplo:

 a:link { color:#000; background:#FFF url('../img/linethrough.png') repeat-x top left; } a:visited { background-color:#000; color:#000; }