访问过的链接不会强调

时间:2013-12-17 17:23:55

标签: html css anchor

我访问过的网络项目链接不会加下划线,但是,其他访问过的修改工作正常,并且下划线正在用于悬停。我向我的导师展示了这个并且他很困惑,并说他会试着抽出时间看看它,然而,截止日期即将结束,我不能再等了。这是我的布局页面中处理锚标记的部分:

a:link
{
    text-decoration: none;
    color: #d1bd22;
    font-size: 1.3em;
}

a:visited
{
    text-decoration: underline;
    color: white;
    font-size: 1.3em;
}

a:hover
{
    text-decoration: underline;
    color: #d1bd22;
    font-size: 1.3em;
}

a:active
{
text-decoration: none;
    color: white;
    font-size: 1.3em;
}

以下是我网站的链接:

http://cis.luzerne.edu/~ds0002/morlansfamousshop.html

3 个答案:

答案 0 :(得分:4)

给@pwdst提示,以便发现这一点。

有关Firefox的信息,请参阅this documentation。类似的规则适用于Chrome。

由于JavaScript可以读取应用于元素的样式(以及其他元素及其计算样式),因此允许在:visited时更改链接可以显示有关其他网站的信息有人来过。

为了保护用户的隐私,浏览器限制:visited可以更改哪些属性,text-decoration无法更改。

另请参阅:The Selectors specification,祝贺此行为:

  因此,UA可能会将所有链接视为未访问的链接,或实施其他措施以保护用户的隐私,同时以不同方式呈现访问和未访问的链接。

答案 1 :(得分:3)

我在评论中的猜测是正确的。如果您创建一个测试示例(在JS Fiddle或测试HTML文件中),则在Dev Tools中检查时应用属性 ,但无法直观地看到。这是为什么?

有几个故事是关于恶意网站向其网页添加链接(通常是隐藏),然后使用:visited伪类来确定用户是否访问过该网址时,用户隐私遭到入侵。

因此,Mozilla开发者网络声明 -

  

注意:出于隐私原因,浏览器严格限制您的风格   使用此伪类选择的元素进行应用:仅颜色,   背景色,边框色,边框底色,   border-left-color,border-right-color,border-top-color,   outline-color,column-rule-color,fill和stroke。还请注意   alpha组件将被忽略:alpha组件   改为使用未访问的规则(不透明度为0时,in   那种情况下整个颜色被忽略了,而一个未被访问过   使用规则。

     

虽然颜色可以改变,但getComputedStyle方法会有所不同   并始终返回未访问颜色的值。

     

有关限制及其动机的更多信息,   请参阅隐私和:访问选择器。

请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/:visited

正在应用颜色属性的事实也只有一半,因为它被报告为已应用且在视觉上存在 - 但getComputedStyle方法将位于并返回颜色,就像未应用规则一样。

因此,恶意网站管理员无法再使用此技术确定您访问过的网站。

答案 2 :(得分:-1)

我相信这种情况发生的原因是优先的。

因为你已经在其他人之前定义了一个:链接,而其他人没有添加任何额外的权重,所以浏览器正在使用第一个定义。

尝试在最后添加a:链接,它应该按预期工作(因为只有特定的悬停和访问将与之前的定义匹配)