vlink属性在HTML5中已彻底失效,因标准移除且浏览器完全忽略;必须用a:visited伪类替代,且须严格遵循LVHA顺序(a:link→a:visited→a:hover→a:active)并仅设置color等允许的属性。

vlink 属性已彻底失效,现代浏览器(Chrome、Firefox、Edge、Safari)在 HTML5 文档模式下完全忽略它,连控制台警告都不会出现。你写 或执行 document.body.vLink = "red",样式都不会生效。
vlink 为什么在 HTML 中完全不起作用
- HTML5 标准已移除
vlink、link、alink等body属性,它们不是“不推荐”,而是“未定义”。 - 浏览器解析时会把
vlink="red"当作自定义属性存进 DOM,但不会触发任何样式逻辑。 - 所有主流前端框架(React/Vue/Svelte)默认生成 HTML5 文档类型,
vlink天然失能。 - 即使强制用 JavaScript 修改
document.body.vLink,也不会触发重绘,页面链接颜色毫无变化。
替代方案必须用 a:visited 伪类,且顺序不能错
- 唯一有效方式是 CSS 的
a:visited,但它依赖严格的声明顺序:a:link→a:visited→a:hover→a:active(LVHA) - 顺序错位会导致
:visited静默失效,例如:a:hover { color: orange; } a:visited { color: #666; }这段代码中:visited很可能不生效。 - 不要用
!important强行覆盖——这不是优先级问题,是浏览器安全策略直接丢弃整条规则。
a:visited 能设什么、不能设什么
出于隐私保护,浏览器只允许修改极少数属性,其余一律静默忽略(无报错、无警告、不回退):
✅ 允许设置的(仅限颜色类):
colorbackground-colorborder-color(含border-top-color等)outline-colortext-decoration-color❌ 完全无效的(写了也白写):
font-weightfont-sizedisplayvisibilitypaddingmargintransformbackground-imageJS 无法检测状态:
getComputedStyle(link, ':visited')返回空对象;link.matches(':visited')永远为false。
真正麻烦的是它不报错。你调了半天颜色没变,大概率是因为混进了 font-weight 导致整条 a:visited 规则被浏览器引擎跳过。动手前先确认只用了允许的属性,比反复刷新页面更省时间。


















