直接改a标签color只影响默认状态;需用伪类控制悬停、已访问等效果,且必须遵循lvha顺序;内联样式最快但仅作用于:link;全站统一应使用外部css文件。

直接改 a 标签的 color 就能变色,但只影响默认状态;想控制悬停、已访问等效果,必须用 CSS 伪类,且顺序不能错。
只改一个链接颜色:用 style="color: ..." 最快
在单个 @#@#@#@#@#@#@#@#@#@0。它立刻生效,不用管其他文件。
- 支持写法:颜色名(
red)、十六进制(#28a745)、RGB(rgb(0, 123, 255)) - 常见失效原因:漏引号、用了中文标点、父级元素设置了更高优先级的
color - 关键限制:它只改
:link状态,:hover和:visited不会跟着变——鼠标移上去还是蓝的,点过之后可能又变紫
统一改全页链接颜色:用 <style></style> 块写 a { color: ... }
把规则塞进 里的 <style></style>,比每个链接都加 style 干净得多。
- 基础写法:
a { color: #28a745; }——同时覆盖未访问和已访问链接,但会丢失视觉区分 - 更稳妥的写法是显式声明:
a:link { color: #007bff; } a:visited { color: #6c757d; } - 别忘了下划线:
a { text-decoration: none; }要单独加,color不会影响这个
a:hover 和 a:visited 颜色不生效?先查这三点
写了 a:hover { color: orange; } 却没反应,大概率不是语法错,而是环境干扰。
-
:visited受浏览器限制:Chrome/Firefox/Safari 允许改color和background-color,但禁止用font-size、transition等属性去探测用户历史 -
:hover失效常见于:父容器设了pointer-events: none,或链接被透明<div> 盖住 <li>CSS 层叠问题:如果前面用了 <code>!important,后面又定义冲突规则,浏览器按优先级和顺序决定谁赢——LVHA 顺序(:link→:visited→:hover→:active)必须守牢 - 新建
styles.css,写入:a:link { color: #007bff; text-decoration: none; } a:visited { color: #6c757d; } a:hover { color: #0056b3; } a:active { color: #004080; } - 在每个 HTML 的
里加:<link rel="stylesheet" href="styles.css"> - 注意路径:如果 CSS 文件不在同一目录,
href得写对相对路径,比如css/styles.css
多个页面要一致?必须抽成外部 .css 文件
首页、文章页、联系页各自写一遍 <style></style>,改一个颜色就得开三份文件找,迟早漏。
真正容易被忽略的是 :visited 的安全限制和 LVHA 顺序——前者让你以为写错了,后者让你以为浏览器 bug,其实都是规范使然。











