有什么理由说这不能在Internet Explorer或Chrome上运行:
<html>
<head>
<style>
A {font-weight: bold; color:black;}
A:visited {font-weight: normal; color: black; }
.Empty {font-weight: bold; color: black; }
</style>
</head>
<body>
<a href="http://mysite">click me</a>
</body>
</html>
我点击的链接永远不会正常,只是保持粗体。在一些其他浏览器上它可以工作。
修改:更改案例不会影响它。
修改:将a更改为:链接不会影响它。
修改:更改颜色,但不是字体重量。
修改:解决方法是更改辅助功能以忽略网页颜色。我无法访问源代码,所以我必须这样做。
答案 0 :(得分:30)
实际上,这与区分大小写无关。这是一项安全功能。 :visited
伪类的功能在许多现代浏览器(Fx4,IE9,Chrome)中受到限制,以防止CSS利用:阅读它here。
如今,这些浏览器中的getComputedStyle()
通常会返回访问过的链接的值,就好像它们没有被访问过一样。但是,我可以简单地想象一下:对于访问过的链接使用font-weight
,元素的宽度会发生变化,因此允许更改font-weight
:visited
链接的浏览器实际上不会修复安全漏洞
因此,此问题没有解决方法。
答案 1 :(得分:2)
从2020年开始,仍然可以使用:visited的一个有用属性是background-color。所以尝试:
:visited {background-color:red !important;}
:visited也可用于非元素。
(注意:如果可以,请删除!important。不好的做法。请在此处快速使用它。)
答案 2 :(得分:2)
我遇到了同样的问题。我注意到当您在浏览器中以访客身份登录时会出现此问题(我使用 Chrome)。因此,您的代码没有问题。
所以解决方案很简单:
<块引用>只需在 Web 浏览器中登录您的任何帐户(我再一次只讨论 Google Chrome)
答案 3 :(得分:1)
CSS本身不区分大小写,但如果使用此样式的HTML文件具有XML声明和XHTML doctype,则该CSS不起作用,因为标签区分大小写。您必须将“a”标记设置为小写。
答案 4 :(得分:0)
也许尝试更改颜色属性,看看它是否有效果。
要进行问题排查,您可能需要尝试使用chrome中的开发人员工具来查看应用的样式。
答案 5 :(得分:0)
您需要为:link,a:visited,a:active等
单独声明删除第一个不包含冒号的样式。它压倒一切。替换为:link。
答案 6 :(得分:0)
我通过将链接保存到cookie或会话中,然后手动将访问类添加到我的php导航脚本中,为我的网站解决了这个问题。只需制作一个像这样的uri数组:
//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 '<a class="visited" href="'.$link['uri'].'">'.$link['name'].'</a>';
} else {
echo '<a href="'.$link['uri'].'">'.$link['name'].'</a>';
}
答案 7 :(得分:0)
问题与历史嗅探有关,由于隐私问题,已禁用更改的css属性。
我想出了以下解决方法以达到预期效果。 可以更改访问链接的背景颜色。
解决方案非常简单:
以下是一个例子:
a:link {
color:#000;
background:#FFF url('../img/linethrough.png') repeat-x top left;
}
a:visited {
background-color:#000;
color:#000;
}