Les attributs SRC
et HREF
sont utilisés pour inclure certaines entités externes comme une image, un fichier CSS, un fichier HTML, toute autre page Web ou un fichier JavaScript.
Y a-t-il une distinction claire entre SRC
et HREF
? Où et quand utiliser SRC
ou HREF
? Je pense qu'ils ne peuvent pas être utilisés de manière interchangeable.
Je donne ci-dessous quelques exemples où ces attributs sont utilisés:
- Pour référencer un fichier CSS:
href="cssfile.css"
à l'intérieur de la balise de lien. - Pour référencer un fichier JS:
src="myscript.js"
à l'intérieur de la balise script. - Pour référencer un fichier image: à l'
src="mypic.jpg"
intérieur d'une balise image. - Pour faire référence à une autre page Web: à l'
href="http://www.webpage.com"
intérieur d'une balise d'ancrage.
Réponses:
REMARQUE: La réponse de @ John-Yin est plus appropriée compte tenu des changements dans les spécifications.
Oui. Il existe une différenciation entre src et href et ils ne peuvent pas être utilisés de manière interchangeable. Nous utilisons src pour les éléments remplacés tandis que href pour établir une relation entre le document de référence et une ressource externe.
L'attribut href (Référence Hypertexte) spécifie l'emplacement d'une ressource Web définissant ainsi un lien ou une relation entre l'élément courant (en cas d'ancre
a
) ou le document courant (en cas delink
) et l'ancre ou ressource de destination définie par cet attribut. Quand on écrit:Le navigateur comprend que cette ressource est une feuille de style et que le
En traitementl'analyse de la page n'est pas interrompue (le rendu peut être interrompu car le navigateur a besoin des règles de style pour peindre et rendre la page). Ce n'est pas similaire au vidage du contenu du fichier css à l'intérieur de lastyle
balise. (Par conséquent, il est conseillé d'utiliserlink
plutôt que@import
de joindre des feuilles de style à votre document html.)L' attribut src (Source) incorpore simplement la ressource dans le document courant à l'emplacement de la définition de l'élément. Pour par exemple. Lorsque le navigateur trouve
Le chargement et le traitement de la page sont suspendus jusqu'à ce que le navigateur récupère, compile et exécute le fichier. Cela revient à vider le contenu du fichier js dans la
script
balise. Il en va de même pour leimg
tag. C'est une balise vide et le contenu, qui devrait y entrer, est défini par l'src
attribut. Le navigateur suspend le chargement jusqu'à ce qu'il récupère et charge l'image. [c'est le cas aveciframe
]C'est la raison pour laquelle il est conseillé de charger tous les fichiers JavaScript en bas (avant la
</body>
balise)mise à jour : Référez-vous à la réponse de @ John-Yin pour plus d'informations sur la façon dont elle est mise en œuvre selon les spécifications HTML 5.
la source
src
charge généralement le fichier en série tout en le chargeanthref
en parallèle. Ainsi, le temps de chargement perçu augmente lorsque les ressources sont chargées en série.La réponse d'apnerve était correcte avant la sortie de HTML 5, maintenant c'est un peu plus compliqué.
Par exemple, l'
script
élément, selon la spécification HTML 5 , a deux attributs globaux qui changent le fonctionnement de l'src
attribut:async
etdefer
. Celles-ci modifient la manière dont le script (intégré en ligne ou importé à partir d'un fichier externe) doit être exécuté.Cela signifie qu'il existe trois modes possibles qui peuvent être sélectionnés à l'aide de ces attributs:
async
attribut est présent, le script sera exécuté de manière asynchrone, dès qu'il sera disponible.async
attribut n'est pas présent mais que l'defer
attribut est présent, le script est exécuté lorsque la page a terminé l'analyse.Pour plus de détails, veuillez consulter la recommandation HTML 5
Je voulais juste mettre à jour avec une nouvelle réponse pour quiconque visite occasionnellement ce sujet. Certaines des réponses doivent être vérifiées et archivées par stackoverflow et chacun de nous.
la source
Je pense que cela
<src>
ajoute des ressources à la page et<href>
sert uniquement à fournir un lien vers une ressource (sans ajouter la ressource elle-même à la page).la source
Définition simple
la source
SRC ( S ou rc e) - Je veux charger cette ressource pour moi-même.
Par exemple:
HREF ( H ypertext REF erence ) - Je veux faire référence à cette ressource pour quelqu'un d'autre.
Par exemple:
Courtoisie
la source
H REF : Est un REF érence à l' information pour la page en cours à savoir info css pour le style de page ou un lien vers une autre page. L'analyse de page n'est pas arrêtée.
SRC : est une source à ajouter / charger sur la page comme dans les images ou javascript. L'analyse de page peut s'arrêter en fonction de l'attribut codé. C'est pourquoi il est préférable d'ajouter un script juste avant la balise body de fin afin que le rendu de la page ne soit pas retardé.
la source
Si vous parlez de HTML4, sa liste d'attributs pourrait vous aider avec les subtilités. Ils ne sont pas interchangeables.
la source
Depuis W3:
Source: http://www.w3.org/TR/html401/struct/links.html
Source: http://www.w3.org/TR/REC-html40/struct/objects.html
la source
Une définition simple
la source
Vous devez vous rappeler quand utiliser tout le monde et c'est que
le href est utilisé avec des liens
le src est utilisé avec des scripts et des images
l' url est généralement utilisée en CSS pour inclure quelque chose, par exemple pour ajouter une image de fond
la source
après avoir parcouru la documentation HTML 5.1 (1er novembre 2016):
partie 4 (Les éléments du HTML)
ne contient pas l'
src
attribut ...la sorcière est logique car c'est un lien.
il ne mentionne même pas le
href
attribut ...cela indique que lorsque vous utilisez des balises de script, utilisez toujours l'
src
attribut !!!ne mentionne pas non plus l'
href
attribut ...cela indique que lors de l'utilisation de
img
balises, l'src
attribut doit être utilisé également ...Lien de référence vers la recommandation du W3C
la source
Ils ne sont pas interchangeables - chacun est défini sur différents éléments, comme on peut le voir ici .
Ils ont en effet des significations similaires, c'est donc une incohérence. Je suppose principalement en raison des différentes balises implémentées par différents fournisseurs au départ, puis intégrées dans les spécifications telles quelles pour éviter de rompre la compatibilité ascendante.
la source
src
balise ajoute une ressource à la page tout enhref
fournissant simplement un lien vers la ressource et établit une relation avec le document.Ils n'ont pas de significations similaires. «src» indique une ressource que le navigateur doit récupérer dans le cadre de la page actuelle. HREF indique une ressource à extraire si l'utilisateur le demande.
la source
<link href="foo.css" rel="stylesheet" type="text/css">
href
indique une ressource à récupérer si l' agent utilisateur le demande. La feuille de style n'est pas extraite dans le cadre du document actuel.Je suis d'accord avec ce qu'apnerve dit sur la distinction. Mais en cas de css, cela semble étrange. Comme css est également téléchargé sur le client par navigateur. Ce n'est pas comme une balise d'ancrage qui pointe vers une ressource spécifique. Donc, utiliser href me semble étrange. Même si elle n'est pas chargée avec la page, elle ne peut toujours pas sembler complète et donc ce n'est pas seulement une relation, mais comme une ressource qui à son tour fait référence à de nombreuses autres ressources telles que des images.
la source
CSS
fait partie duHTML
document, vous pouvez utiliser lastyle
balise avec@import
règle. Cela peut avoir des conséquences sur les performances, mais cela a du sens dans ce scénario.src est utilisé pour ajouter cette ressource à la page, tandis que href est utilisé pour créer un lien vers une ressource particulière à partir de cette page.
Lorsque vous utilisez dans votre page Web, le navigateur voit qu'il s'agit d'une feuille de style et continue donc avec le rendu de la page lorsque la feuille de style est téléchargée en parallèle.
Lorsque vous utilisez dans votre page Web, il indique au navigateur d'insérer la ressource à l'emplacement. Alors maintenant, le navigateur doit récupérer le fichier js, puis le charger. Tant que le navigateur n'a pas terminé le processus de chargement, le processus de rendu de la page est interrompu. C'est la raison pour laquelle YUI recommande de charger vos fichiers JS tout en bas de votre page Web.
la source