Die Attribute SRC
und HREF
werden verwendet, um einige externe Entitäten wie ein Bild, eine CSS-Datei, eine HTML-Datei, eine andere Webseite oder eine JavaScript-Datei einzuschließen.
Gibt es eine klare Unterscheidung zwischen SRC
und HREF
? Wo oder wann SRC
oder HREF
? Ich denke, sie können nicht austauschbar verwendet werden.
Ich gebe im Folgenden einige Beispiele, in denen diese Attribute verwendet werden:
- So verweisen Sie auf eine CSS-Datei:
href="cssfile.css"
innerhalb des Link-Tags. - So verweisen Sie auf eine JS-Datei:
src="myscript.js"
innerhalb des Skript-Tags. - So verweisen Sie auf eine Bilddatei:
src="mypic.jpg"
in einem Bild-Tag. - So verweisen Sie auf eine andere Webseite:
href="http://www.webpage.com"
innerhalb eines Ankertags.
Antworten:
HINWEIS: Die Antwort von @ John-Yin ist angesichts der Änderungen in den technischen Daten angemessener.
Ja. Es gibt eine Unterscheidung zwischen src und href und sie können nicht austauschbar verwendet werden. Wir verwenden src für ersetzte Elemente, während href eine Beziehung zwischen dem referenzierenden Dokument und einer externen Ressource herstellt.
Das Attribut href (Hypertext Reference) gibt den Speicherort einer Webressource an und definiert so eine Verknüpfung oder Beziehung zwischen dem aktuellen Element (im Falle eines Ankers
a
) oder dem aktuellen Dokument (im Fall vonlink
) und dem durch dieses Attribut definierten Zielanker oder der Zielressource. Wenn wir schreiben:Der Browser versteht, dass diese Ressource ein Stylesheet ist und die
wird bearbeitetDas Parsen der Seite wird nicht angehalten (das Rendern kann angehalten werden, da der Browser die Stilregeln zum Malen und Rendern der Seite benötigt). Es ist nicht vergleichbar mit dem Speichern des Inhalts der CSS-Datei innerhalb desstyle
Tags. (Daher ist es ratsam, Stylesheetslink
nicht@import
zum Anhängen an Ihr HTML-Dokument zu verwenden, sondern zu verwenden .)Das Attribut src (Quelle) bettet die Ressource nur an der Position der Elementdefinition in das aktuelle Dokument ein. Zum Beispiel. Wenn der Browser findet
Das Laden und Verarbeiten der Seite wird angehalten, bis der Browser die Datei abruft, kompiliert und ausführt. Es ähnelt dem Speichern des Inhalts der js-Datei innerhalb des
script
Tags. Ähnliches gilt fürimg
tag. Es ist ein leeres Tag und der Inhalt, der darin enthalten sein sollte, wird durch dassrc
Attribut definiert . Der Browser unterbricht das Laden, bis das Bild abgerufen und geladen wird. [so ist es auch mitiframe
]Aus diesem Grund ist es ratsam, alle JavaScript-Dateien unten (vor dem
</body>
Tag) zu laden.Update : Weitere Informationen zur Implementierung gemäß den HTML 5-Spezifikationen finden Sie in der Antwort von @ John-Yin .
quelle
src
lädt die Datei im Allgemeinen seriell, währendhref
sie parallel geladen wird . Die wahrgenommene Ladezeit erhöht sich also, wenn Ressourcen seriell geladen werden.Die Antwort von apnerve war richtig, bevor HTML 5 herauskam, jetzt ist es etwas komplizierter.
Beispielsweise verfügt das
script
Element gemäß der HTML 5- Spezifikation über zwei globale Attribute, die diesrc
Funktionsweise des Attributs ändern :async
unddefer
. Diese ändern, wie das Skript (inline eingebettet oder aus einer externen Datei importiert) ausgeführt werden soll.Dies bedeutet, dass drei mögliche Modi mit diesen Attributen ausgewählt werden können:
async
Attribut vorhanden ist, wird das Skript asynchron ausgeführt, sobald es verfügbar ist.async
Attribut nicht vorhanden ist, dasdefer
Attribut jedoch vorhanden ist, wird das Skript ausgeführt, wenn die Analyse der Seite abgeschlossen ist.Einzelheiten finden Sie in der HTML 5-Empfehlung
Ich wollte nur mit einer neuen Antwort für jeden aktualisieren, der dieses Thema gelegentlich besucht. Einige der Antworten sollten von stackoverflow und jedem von uns überprüft und archiviert werden.
quelle
Ich denke,
<src>
fügt der Seite einige Ressourcen hinzu und<href>
dient nur zum Bereitstellen eines Links zu einer Ressource (ohne die Ressource selbst zur Seite hinzuzufügen).quelle
Einfache Definition
quelle
SRC ( S ou rc e) - Ich möchte diese Ressource für mich selbst laden.
Beispielsweise:
HREF ( H ypertext REF erenz) - ich für jemand anderen auf diese Ressource beziehen möchten.
Beispielsweise:
Höflichkeit
quelle
H REF : Ist ein REF erenz zu Informationen für die aktuelle Seite info dh CSS für den Seitenstil oder einen Link zu einer anderen Seite. Das Parsen von Seiten wird nicht gestoppt.
SRC : Ist eine Quelle , die der Seite wie in Bildern oder Javascript hinzugefügt / geladen werden soll. Das Parsen von Seiten wird möglicherweise abhängig vom codierten Attribut beendet. Aus diesem Grund ist es besser, ein Skript kurz vor dem End-Body-Tag hinzuzufügen, damit das Rendern der Seite nicht beeinträchtigt wird.
quelle
Wenn Sie über HTML4 sprechen, hilft Ihnen die Liste der Attribute möglicherweise bei den Feinheiten. Sie sind nicht austauschbar.
quelle
Von W3:
Quelle: http://www.w3.org/TR/html401/struct/links.html
Quelle: http://www.w3.org/TR/REC-html40/struct/objects.html
quelle
Eine einfache Definition
quelle
Sie sollten sich daran erinnern, wann Sie alle verwenden sollen, und das heißt,
die href wird mit Links verwendet
Der src wird mit Skripten und Bildern verwendet
Die URL wird im Allgemeinen in CSS verwendet, um etwas einzuschließen, beispielsweise um ein Hintergrundbild hinzuzufügen
quelle
nach Durchlaufen der HTML 5.1-Dokumentation (1. November 2016):
Teil 4 (Die Elemente von HTML)
enthält nicht das
src
Attribut ...Hexe ist logisch, weil es eine Verbindung ist.
es erwähnt nicht einmal das
href
Attribut ...Dies zeigt an, dass bei der Verwendung von Skript-Tags immer das
src
Attribut verwendet wird !!!erwähnt auch nicht das
href
Attribut ...Dies zeigt an, dass bei Verwendung von
img
Tags auch dassrc
Attribut verwendet werden sollte ...Referenzlink zur W3C-Empfehlung
quelle
Sie sind nicht austauschbar - jedes ist auf verschiedenen Elementen definiert, wie hier zu sehen ist .
Sie haben in der Tat ähnliche Bedeutungen, daher ist dies eine Inkonsistenz. Ich würde hauptsächlich aufgrund der unterschiedlichen Tags annehmen, die zunächst von verschiedenen Anbietern implementiert und dann in die Spezifikation aufgenommen wurden, um eine Unterbrechung der Abwärtskompatibilität zu vermeiden.
quelle
src
Tag fügt der Seite eine Ressource hinzu, während eshref
lediglich einen Link zur Ressource bereitstellt und eine Beziehung zum Dokument herstellt.Sie haben keine ähnlichen Bedeutungen. 'src' gibt eine Ressource an, die der Browser als Teil der aktuellen Seite abrufen soll. HREF gibt eine Ressource an, die abgerufen werden soll, wenn der Benutzer dies anfordert.
quelle
<link href="foo.css" rel="stylesheet" type="text/css">
href
angibt, dass eine Ressource abgerufen werden soll, wenn der Benutzeragent dies anfordert. Das Stylesheet wird nicht als Teil des aktuellen Dokuments abgerufen.Ich stimme zu, was Apnerve über die Unterscheidung sagt. Aber im Falle von CSS sieht es seltsam aus. Da CSS auch per Browser auf den Client heruntergeladen wird. Es ist nicht wie ein Ankertag, der auf eine bestimmte Ressource verweist. Die Verwendung von href erscheint mir also seltsam. Selbst wenn es nicht mit der Seite geladen ist, die noch nicht ohne diese Seite ist, kann es nicht vollständig aussehen, und daher ist es nicht nur eine Beziehung, sondern eine ähnliche Ressource, die sich wiederum auf viele andere Ressourcen wie Bilder bezieht.
quelle
CSS
ein Teil desHTML
Dokuments ist, können Sie dasstyle
Tag mit@import
Regel verwenden. Dies kann Auswirkungen auf die Leistung haben, ist jedoch in diesem Szenario sinnvoll.src wird verwendet, um diese Ressource zur Seite hinzuzufügen, während href verwendet wird, um eine Verknüpfung zu einer bestimmten Ressource von dieser Seite herzustellen.
Wenn Sie auf Ihrer Webseite verwenden, erkennt der Browser, dass es sich um ein Stylesheet handelt, und fährt daher mit dem Rendern der Seite fort, wenn das Stylesheet parallel heruntergeladen wird.
Wenn Sie auf Ihrer Webseite verwenden, wird der Browser angewiesen, die Ressource am Speicherort einzufügen. Jetzt muss der Browser die js-Datei abrufen und dann laden. Bis der Browser den Ladevorgang beendet hat, wird der Seitenwiedergabevorgang angehalten. Aus diesem Grund empfiehlt YUI, Ihre JS-Dateien ganz unten auf Ihrer Webseite zu laden.
quelle