You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何多数现代浏览器(除火狐外)不支持在a:visited中设置CSS变量?

为什么多数现代浏览器(Firefox除外)不支持在:visited伪类中设置CSS变量?

核心原因是隐私安全限制:

  • 浏览器对:visited伪类有严格的访问控制,目的是防止恶意网站窃取用户浏览历史。如果允许在:visited中定义或修改CSS变量,网站可通过getComputedStyle等API读取变量值,以此判断用户是否访问过特定链接,直接泄露隐私。
  • 而:hover这类伪类属于实时交互状态,不会存储用户历史信息,不存在泄露浏览记录的风险,因此所有浏览器都支持在其中设置CSS变量。

Chromium内核浏览器(如Chrome、Edge)和Safari完全禁止在:visited中修改CSS变量,就是为了彻底堵上这个隐私漏洞。Firefox之所以支持,是因为它对:visited中的CSS变量做了特殊处理——限制JavaScript读取这些变量的实际值,确保即使设置了变量,也无法通过脚本获取用户的访问状态,兼顾了功能和隐私安全。

示例代码对比:

  • 在Chromium/Safari中无法生效的代码:
a:visited {
  --bg-color: red;
}
  • 所有浏览器均支持的代码:
a:hover {
  --bg-color: red;
}

内容的提问来源于stack exchange,提问作者miu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:20:30