← 全部文章

教程

高亮已访问的链接 —— 以及为什么 CSS 允许的这么少

搜索结果、一份文章列表、文档 —— 却没办法看出你已经打开过哪些链接。一条 CSS 规则解决它。而沿途值得了解一下为什么 :visited 选择器被限制得这么古怪。

规则

在规则的 CSS 标签页里,用一个带链接列表的页面的 URL 模式,或全局 *

a:visited {
  color: #9333ea !important;
}

就这些。已访问的链接变成紫色。选一个与普通链接颜色差异强烈的颜色,这样对比一眼就能读出来。

为什么能做的这么少

自然的本能:既然我能改颜色,那我也加个图标或背景吧。你不会的 —— 而且这是有意的。

如果 :visited 允许任意样式,任何页面都能检测你的历史记录。它会插入一千个隐藏链接,通过 :visited 给每个不同的尺寸或背景,用 JavaScript 测量布局,然后读出你访问过哪些 URL。这曾是一个真实的漏洞(历史嗅探)—— 浏览器把它堵上了。

什么被允许,什么不被

:visited 上只有颜色属性有效:colorbackground-colorborder-coloroutline-color。而即便是这些也被往一个方向「撒谎」:

想要的不止颜色?

徽章、图标、访问计数 —— :visited 不会给你这些。它们需要在 JavaScript 里追踪你的历史记录,那是一个独立得多、沉重得多的话题。对大多数情况来说仅颜色就绰绰有余 —— 因为你真正需要的唯一一件事就是「我来过这里没有」。

另见

安装 JustZix —— 一眼看出你已经去过哪里。

为这篇文章评分

暂无评分 — 成为第一个。

自己动手试试

安装 JustZix,粘贴本文中的任意代码片段。两分钟,从零到一条在你所有设备上生效的规则。

获取 JustZix

功能 · 工作原理 · 示例 · 应用场景