Ein Verwandter von mir, der angefangen hat, Webentwicklung zu lernen, hat mir diese Frage gestellt.
Warum <script src="min.js"></script>
und <link rel="stylesheet" href="min.css">
? Warum nicht <style href="min.css"></style>
. Warum verwenden wir link
Tag, um externes CSS zur Seite hinzuzufügen, aber wenn wir CSS mit Seite verknüpfen, verwenden wir es, <style>...</style>
wenn wir CSS in die Seite schreiben <head>
?
Ich sagte ihm, dass es an der Spezifikation liegt. Gibt es weitere Informationen, die Sie ihm geben können?
javascript
css
html
w3c
Jitendra Vyas
quelle
quelle
<style type="text/css">@import url("style.css");</style>
.Antworten:
Es ist historisch ... Zufall? Sie können ihm empfehlen, einen Teil über Past of diveintohtml5.info zu lesen , in dem es einige interessante Geschichten zwischen Webentwicklern gibt, nämlich E-Mail-Korrespondenzen. Webentwickler bedeuten, dass sie tatsächlich das Web entwickelt haben, das wir heutzutage sehen;)
Dh
<img>
Tag, an den wir gewöhnt sind:<IMG SRC="file://foobar.com/foo/bar/blargh.xbm">
könnte sein:
<ICON name="NoEntry" href="http://note/foo/bar/NoEntry.xbm">
oder
<A HREF="..." INCLUDE>See photo</A>
oder
<INCLUDE HREF="...">
aber schließlich entschieden sich die Entwickler, bei dem zu bleiben
<img>
, was bereits implementiert wurde :Ich weiß keine direkte Antwort auf Ihre Frage, aber ich bin auch ziemlich neugierig auf
<link>
Tag. Das Finden einer Antwort würde wahrscheinlich das Ausgraben einiger Webarchive beinhalten.quelle
text/css
undtext/javascript
ist nicht erforderlich.Zumindest aus Sicht des W3C gibt es einen Unterschied.
Ein
<style>
Element führt einen Block von CSS-Regeln ein, die für das aktuelle Dokument gelten. Externe Stylesheets werden jedoch tatsächlich als ganze Dokumente betrachtet, die sich auf die aktuelle Seite beziehen , und Benutzeragenten können solche Dokumente je nachtype
undmedia
Attributen des Links ignorieren . Zum Beispiel:<link rel="stylesheet" type="text/css" media="screen" href="screen.css" /> <link rel="stylesheet" type="text/css" media="print" href="print.css" />
In dieser Situation folgen Benutzeragenten normalerweise nur einem der Links, entweder dem
screen
einen (für normales Rendern) oder demprint
einen (zum Drucken). Die Idee war, die Bandbreite zu erhalten, indem nur die entsprechende Ressource heruntergeladen wurde, anstatt alles abzurufen und später nach dem Medientyp zu filtern.Dies wird in der Spezifikation erwähnt:
quelle
<link>
Element kann der Benutzeragent die Ressource vollständig ignorieren, ohne sie zuerst laden zu müssen, bevor er sich dazu entschließen kann.media
Attribute wie:<style type="text/css" media="screen">
Wir können zwei Stilelemente haben, eines fürmedia="screen"
und eines fürmedia="print"
. Ich verstehe nicht, warum einsrc
Attribut für ein Stilelement nicht zulässig ist.Beide haben eine grundsätzlich identische Bedeutung, und Sie haben eine Art Inkonsistenz in HTML festgestellt. Der Grund dafür ist, dass die Standards auf der Implementierung verschiedener Browser basierten. Verschiedene Browser haben die Attribute in den verschiedenen Tags gefunden, und das W3C hat nur beschlossen, einige der Inkonsistenzen beizubehalten, um die Abwärtskompatibilität aufrechtzuerhalten.
Elemente, die verwenden
src
:script img iframe input video frame
Elemente, die verwenden
href
:a link base
quelle
src
wird für ersetzte Elemente verwendet. Diese Elemente sind Teil des HTML-Dokuments. Whilehref
wird zum Verknüpfen mit anderen Dokumenten verwendet. Hier geben wir eine 'Beziehung' des externen Dokuments zum aktuellen Dokument an.<script>
dessrc
Attributs 's kein Link, sondern ein Ersatz ist. Die Seite verhält sich identisch, unabhängig davon, ob Siesrc
das Skript inline verwenden oder einbinden (was als "Ersatz" angesehen wird).Dies könnte die Dinge erklären, denke ich: http://www.w3.org/TR/html4/struct/links.html
quelle
Das
<link>
Tag wird verwendet, um andere Dokumente mit dem aktuellen zu "verknüpfen" und seine Beziehung oderrel
damit zu beschreiben.Sie können auch
<link>
andere Dinge mit dem Dokument verknüpfen. Zum Beispiel Favicons:<link rel="shortcut icon" href="favicon.ico" />
quelle
link
für Skripte verwendet werden, wie hier gefragt .Möglicher Grund für
link ref
vsstyle
:link
kann nur auf die gehenhead
, wo "Metadateninhalt" normalerweise erlaubt isthead
,style
konnte nicht in diebody
vor HTML5 gehen (jetzt können Sie mitscoped
, aber immer noch nicht zu externen Stilen). Daher ist die Wahl zwischenlink ref
undstyle src
beliebig.script
konnte jedoch bereits ein externes Skript in dasbody
vor HTML5 aufnehmen, so musste es seinscript src
. Aber da es existieren musste, warum nicht auch imhead
(woscript
bereits erlaubt) zulassen und nicht zulassenlink rel=script
, um Doppelarbeit zu vermeiden?quelle