JavaScript 的工作方式是我们可以将脚本作为内联块执行
<script>
let foo = "bar";
</script>
或者,如果脚本应从网络中获取…
<script src="/js/global.js"></script>
使用 CSS,我们可以执行内联块样式
<style>
.foo { color: red; }
</style>
那么为什么不是 <style src=""></style>
?相反,我们有 <link href="">
。
Harry Roberts 几天前在 Twitter 上询问了此事
有 W3 历史学家能告诉我们为什么是 `<link rel="stylesheet" />` 而不是 `<style src="…">` 吗?
— Harry Roberts (@csswizardry) 2018 年 11 月 29 日
在该线程中有很多猜测,但 Bruce 给出了一个非常明确的答案
据我所知,<foo src=""> 告诉浏览器获取某些内容并将其插入此处 - 例如 <img src="">、"<script src="">。 样式表不会被“插入”,它们与当前文档相关,但通常会为多个页面设置样式。 <style></style> 声明仅适用于此页面的规则块
— Bruce Lawson (@brucel) 2018 年 11 月 29 日
我多少理解了这一点。 文档中的位置对于 src
非常重要,但对于 <link>
则不然——它与整个文档相关。 我想这种推理的破绽在于,样式表的顺序对于顺序特异性很重要,但我接受了这一点。
W3C 加入进来以确认该逻辑
(2/2) 并且 HTML 3.2 中的原始 <script> 元素没有 src 属性。 HTML 3.2 的 REC 将 <link> 作为链接到脚本的一种方式,但它没有为 rel= 定义任何关键字。
— W3C (@w3c) 2018 年 11 月 29 日
我们得到了答案:<style src=""></style>
甚至没有被考虑。
这曾经是我一直想知道的问题之一。 谢谢。
您忘记在该线程中包含 W3C 帐户发布的第二条推文。 点击此处查看链接。
它接着说
因此,从我所了解的情况来看……它从来没有真正被提出作为脚本与链接/样式的对比,它们是独立思考的,时间和使用已经将它逐渐融入标准中。
我挺想使用
<style src=""></style>
的,与脚本标签一起使用时,它看起来更加统一。 此外,使用不同的方法来完成相同的事情(包括在页面上包含外部文件)似乎很愚蠢。