猿问

为什么访问a:css样式的CSS无效?

有什么原因不能在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更改为a:link不会影响它。


编辑:更改颜色的作品,但不是字体粗细。


编辑:解决方法是更改可访问性以忽略网页颜色。我没有访问源的权限,所以我必须这样做。


千巷猫影
浏览 757回答 3
3回答

米琪卡哇伊

实际上,这与大小写无关。这是一项安全功能。:visited在许多现代浏览器(Fx4,IE9,Chrome)中,伪类的功能已受到限制,以防止CSS被利用:在此处阅读有关内容。如今,getComputedStyle()在这些浏览器中,通常会返回已访问链接的值,就像未访问过一样。不过,我可以简单地想像的是规避:使用font-weight用于访问过的链接,该元素的宽度变化,使浏览器将允许改变font-weight的:visited链接实际上不会修复这个安全漏洞。因此,没有解决此问题的方法。

慕斯王

该问题与历史记录嗅探有关,由于隐私问题,已更改访问的链接的CSS属性已被禁用。我想出了以下解决方法来达到预期的效果。可以更改访问链接的背景颜色。解决方案非常简单:在链接上设置与链接高度相同且宽度为1px的背景图像,然后水平重复图像图片与链接的背景颜色相同在垂直中间使该图像的一个像素透明on:visited状态只需将链接的背景颜色更改为链接的文本颜色背景颜色中只有一行是可见的,因为背景图像正在掩盖它这是一个例子:a:link {&nbsp; &nbsp; color:#000;&nbsp; &nbsp; background:#FFF url('../img/linethrough.png') repeat-x top left;}a:visited {&nbsp; &nbsp; background-color:#000;&nbsp; &nbsp; color:#000;}
随时随地看视频慕课网APP
我要回答