为什么 :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 漏洞,浏览器采用了特定的安全措施:
结论
这个限制是一项安全功能,旨在防止 CSS 漏洞利用。不幸的是,没有已知的解决方法可以修改 Internet Explorer 和 Chrome 中的 :visited font-weight。
以上是为什么我访问的链接在 IE 和 Chrome 中保持粗体?的详细内容。更多信息请关注PHP中文网其他相关文章!