link attribute在body中允许吗_非标准早期用法说明【介绍】
热心网友
17
转载
body元素不允许使用link属性,该属性是HTML4.01已废弃的过时特性,HTML5中被完全移除;link标签也仅限于head内使用,放入body会导致解析错误。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
关于 link 属性在 元素上的使用,这里有一个必须澄清的核心误区:它根本就不被允许。很多开发者之所以会混淆,往往是把 标签和 link 属性这两个概念混为一谈了。
body 元素根本没有 link 属性
你可能在一些非常古老的代码里见过类似 body link="blue" 的写法。这其实是 HTML 4.01 时代已被废弃的过时属性。需要明确的是,这个 link 属性与 标签毫无关系,它的作用仅仅是设置文档中未访问链接的默认颜色。典型的旧式语法是这样的:
到了 HTML5,这类表现性属性被彻底移除了。虽然现代浏览器出于兼容性考虑,可能还会“容忍”并渲染它,但代价可不小:
- W3C 官方验证器会直接报错。
- 在 XHTML Strict 模式下,它根本不会被解析。
- 你无法通过
document.body.link稳定地读取到它的值(不同浏览器可能返回空字符串或undefined)。 - 它的行为与 CSS 的级联规则冲突,当和
a:link等选择器同时存在时,最终效果难以预测。
标签不能放在 body 里
那么,那个用来引入样式表或图标的 标签呢?答案是:它必须且只能放在 区域内。这是一个标准的空元素,用法大家都很熟悉:
如果不小心把它写进了 里,会发生什么?
- 根据 HTML5 规范,这属于“解析错误”。浏览器会尝试纠错(例如自动闭合前面的
标签,然后把挪到之后),但具体行为因浏览器而异,不可依赖。 - W3C 验证器会明确报错:
Element link must not be placed here。 - 一些现代构建工具(如 Webpack 的 HTMLWebpackPlugin)或服务端渲染框架,可能会直接拒绝处理这种不规范的文档。
- 即便是为了性能优化的现代用法,如
rel="preload"或rel="modulepreload",也必须在中声明,否则预加载机制很可能不会生效。
替代方案:用 CSS 控制链接颜色
所以,正确控制链接颜色的方法是什么?答案只有一个:使用 CSS。这才是可靠且现代的做法。
/* 在
