首页 >web前端 >css教程 >为什么我访问的链接在 IE 和 Chrome 中保持粗体?

为什么我访问的链接在 IE 和 Chrome 中保持粗体?

Patricia Arquette
Patricia Arquette原创
2024-12-24 22:02:17722浏览

Why Do My Visited Links Remain Bold in IE and Chrome?

为什么 :visited CSS 样式在 IE 和 Chrome 中保持粗体

在给定的 HTML 文档中,用户经常会遇到保持粗体的链接即使在访问后也进行格式化。此问题出现在 Internet Explorer 和 Chrome 等浏览器中。让我们深入研究这个问题的根源。

仔细检查的 HTML 和 CSS 代码是:

<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>

通常,在访问链接时,:visited 伪类应该改变其外观,但是在这种情况下,字体粗细保持粗体。

安全功能限制

此行为背后的罪魁祸首是 Firefox 4、Internet Explorer 9 和 Chrome 等现代浏览器中实施的安全措施。此限制可防止因修改访问链接的字体粗细而引起的 CSS 漏洞。

GetCompulatedStyle() 行为

在这些浏览器中,getCompulatedStyle() 通常返回以下值访问过链接就好像没有访问过一样。但是,恶意行为者可能会通过使用 font-weight 更改元素的宽度来利用此漏洞。因此,允许 :visited 链接的字体粗细更改可能会损害安全措施。

浏览器安全措施

为了阻止 CSS 漏洞,浏览器采用了特定的安全措施:

  • getCompulatedStyle() 总是表示链接从未被
  • 兄弟选择器(例如::visited span)将相邻元素呈现为未访问。
  • 在涉及嵌套链接的极少数情况下,目标元素也可能呈现为未访问。

结论

这个限制是一项安全功能,旨在防止 CSS 漏洞利用。不幸的是,没有已知的解决方法可以修改 Internet Explorer 和 Chrome 中的 :visited font-weight。

以上是为什么我访问的链接在 IE 和 Chrome 中保持粗体?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn