为何HTML页面中Acoustid列的链接点击访问后不会改变颜色?
问题原因
- 浏览器隐私保护限制
现代浏览器为了防止用户浏览历史被恶意窃取,对:visited伪类的样式生效做了严格限制。如果浏览器开启了无痕模式、退出自动清除历史记录、禁止跟踪,或者对应站点的历史存储权限被关闭,访问过的链接不会被标记为已访问,自然不会触发样式变化。 - CSS优先级覆盖
很可能你漏看了全局链接的样式规则:如果存在优先级更高的a标签通用样式(比如td a { color: #2a6496 !important; }这类带!important的规则,或者选择器精度更高的样式),且没有配套定义a:visited的样式,已访问状态的颜色会被通用样式覆盖,表现为无变化。 - 新标签页跳转的状态延迟
你链接设置了target="_blank"在新标签页打开,部分浏览器需要等新页面加载完成后才会更新原页面的链接访问状态,跳转后立刻切回原页面可能暂时看不到样式变化。
修复方案
在你的CSS文件中显式定义该页面链接的已访问样式即可,参考代码:
/* 适配你表格内的链接样式 */ td a:visited { color: #551a8b; /* 可自定义为你需要的已访问状态颜色 */ } /* 如果原a标签样式带!important,这里也需要加 */ /* td a:visited { color: #551a8b !important; } */
内容的提问来源于stack exchange,提问作者Paul Taylor
相关产品推荐
相关产品推荐

