Die Art und Weise, wie JavaScript funktioniert, ermöglicht es uns, Skripte als Inline-Block zu verwenden
<script>
let foo = "bar";
</script>
Oder, wenn das Skript aus dem Netzwerk abgerufen werden soll…
<script src="/js/global.js"></script>
Mit CSS können wir einen Inline-Block von Styles erstellen
<style>
.foo { color: red; }
</style>
Warum also nicht <style src=""></style>? Stattdessen haben wir <link href="">.
Harry Roberts hat das neulich auf Twitter gefragt
Können uns W3-Historiker sagen, warum es `<link rel="stylesheet" />` und nicht `<style src="…">` heißt?
— Harry Roberts (@csswizardry) 29. November 2018
In diesem Thread gibt es viele Spekulationen, aber Bruce hat eine ziemlich klare Antwort
Soweit ich weiß, sagt <foo src=""> dem Browser, er soll etwas abrufen und hier einfügen – z. B. <img src="">, "<script src="">. Stylesheets werden nicht "eingefügt", sie sind mit dem aktuellen Dokument verbunden, aber typischerweise mehr als 1 Seite stylen. <style></style> deklariert eine Reihe von Regeln nur für diese Seite
— Bruce Lawson (@brucel) 29. November 2018
Das verstehe ich irgendwie. Die Position im Dokument ist bei src wichtig, aber nicht bei <link> — das bezieht sich auf das gesamte Dokument. Ich schätze, der Riss in dieser Logik ist, dass die Reihenfolge der Stylesheets für die Reihenfolgespezifität wichtig ist, aber ich verstehe den Punkt.
Das W3C hat sich zu Wort gemeldet, um diese Logik zu bestätigen
(2/2) und das ursprüngliche <script>-Element in HTML 3.2 hatte kein src-Attribut. Das REC für HTML 3.2 erwähnt <link> als Möglichkeit, Skripte zu verknüpfen, definiert aber keine Schlüsselwörter für rel=.
— W3C (@w3c) 29. November 2018
Da haben wir es: <style src=""></style> wurde nicht einmal in Betracht gezogen.
Das war eine der Fragen, die ich mich immer gefragt habe. Danke.
Sie haben vergessen, den zweiten Tweet des w3c-Kontos in diesem Thread aufzunehmen. Link hier.
Es wird weiter gesagt
Also im Grunde, soweit ich das beurteilen kann... es wurde nie wirklich als Skript im Vergleich zu Link/Style vorgeschlagen, sie wurden unabhängig voneinander betrachtet und Zeit und Gebrauch haben es einfach in die Standards integriert.
Ich fände es schön,
<style src=""></style>zu haben, es sieht einheitlicher aus, wenn es in Verbindung mit Skript-Tags verwendet wird. Außerdem scheint es unsinnig, verschiedene Methoden für dasselbe zu haben (einschließlich des Einbindens einer externen Datei auf einer Seite).