必须按lvha顺序(a:link→a:visited→a:hover→a:active)分别设置伪类样式,才能精准控制链接各状态颜色;a:visited仅支持color等有限属性,且不可加transition。

直接改 a 标签的 color 属性就能生效,但只设一个值会掩盖已访问/悬停等状态差异;真要控制体验,必须用伪类分状态写,且顺序不能错。
只改单个链接颜色:用 style="color: ..." 最快,但有硬伤
比如 @#@#@#@#@#@#@#@#@#@0,红色醒目,适合操作类链接。但它只影响默认态(即未访问、未悬停),:hover 和 :visited 仍走浏览器默认色。常见失效原因:style="color:red" 漏了引号、用了中文冒号、或父容器设置了 color 且带 !important,把内联样式压住了。
a:link、a:visited、a:hover、a:active 必须按顺序写
浏览器按声明顺序覆盖样式,:visited 写在 :hover 后面,鼠标一悬停就可能被 :visited 拦截——看起来 :hover 不生效。正确顺序是 LVHA(Link → Visited → Hover → Active):
a:link { color: #007bff; }
a:visited { color: #6c757d; }
a:hover { color: #0056b3; }
a:active { color: #004085; }
注意::visited 受浏览器安全限制,只能改 color、background-color、border-color 等少数属性,font-size 或 transition 设了也无效。
局部区域链接颜色单独控制:用类选择器比重复写伪类更稳
比如页脚链接想统一灰调,又不想影响导航栏:
.footer a:link { color: #666; }
.footer a:visited { color: #999; }
.footer a:hover { color: #333; }
这样写比给每个链接加 class="footer-link" 再定义四条规则更简洁。关键点:.footer a 的权重高于单纯 a:link,不会被全局规则意外覆盖;但如果页脚里还有 .nav a 这类更高权重的选择器,就得检查层叠优先级。
多页面统一管理:外部 CSS 文件里别漏掉 :focus
键盘用户 Tab 切换焦点时,链接需要可见的聚焦态。很多外部样式表只写了 LVHA,忘了 a:focus,导致可访问性不达标。建议补上:
a:focus {
outline: 2px solid #007bff;
outline-offset: 2px;
}
它和 :hover 可共存,但别用 outline: none 随意去掉——这不是“美观问题”,是 WCAG 2.1 的强制要求。另外,外部文件路径如 href="css/style.css" 要确认相对路径正确,404 会导致整套链接样式回退到浏览器默认。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











