:visited 伪类仅允许设置 color、background-color、border-color、outline-color 和 column-rule-color;其他如 font-size 等影响布局的属性会被忽略,且需遵循 LVHA 顺序以确保样式生效。

用 :visited 伪类就能让已访问的链接变色,但要注意浏览器出于隐私保护限制了可设置的样式范围。
哪些样式能用在 :visited 上
为防止网站通过样式探测用户浏览历史,现代浏览器只允许对 :visited 设置极少数 CSS 属性:
- color(文字颜色)
- background-color(背景色)
- border-color(边框颜色)
- outline-color(轮廓颜色)
- column-rule-color(多列分隔线颜色)
像 font-size、display、visibility、transform 这类会影响布局或行为的属性,设置后会被忽略。
基础写法示例
直接在链接选择器后加 :visited 即可:
立即学习“前端免费学习笔记(深入)”;
a:link { color: #0066cc; }
a:visited { color: #666666; }
a:hover { color: #ff6600; }
a:active { color: #cc0000; }
注意::link 和 :visited 都是“状态伪类”,建议按 link → visited → hover → active 的顺序书写(LVHA 顺序),避免样式被意外覆盖。
实际应用小提醒
如果发现 :visited 没生效,可能是这些原因:
- 链接已跳转过但缓存未刷新,试试无痕模式测试
- 目标 URL 带参数或末尾斜杠差异(如
/page和/page/)会被视为不同链接 - 使用了 HTTPS 页面里引用 HTTP 链接,部分浏览器可能不记录访问状态
- CSS 优先级不够,检查是否有更具体的规则覆盖了它
基本上就这些。只要用对属性、写对顺序、注意 URL 一致性,:visited 就能稳定起作用。









