Quali sono le differenze tra gli attributi src e data-src?


102

Quali sono le differenze e le conseguenze (positive e negative) dell'utilizzo di uno data-srco degli srcattributi del imgtag? Posso ottenere gli stessi risultati usando entrambi? In caso affermativo, quando dovrebbero essere utilizzati ciascuno di essi?

Risposte:


174

Gli attributi srce data-srcnon hanno nulla in comune, tranne che sono entrambi consentiti da HTML5 CR ed entrambi contengono le lettere src. Tutto il resto è diverso.

L' srcattributo è definito nelle specifiche HTML e ha un significato funzionale.

L' data-srcattributo è solo uno degli infiniti set di data-*attributi, che non hanno un significato definito ma possono essere utilizzati per includere dati invisibili in un elemento, da utilizzare nello scripting (o nello stile).


1
Angular.js utilizza anche data-src per l'associazione tardiva degli URL in base al modello
Jeff

Grazie per la risposta chiara :) Stavo per usare jQuery.lazy e non ero sicuro di cosa stesse succedendo con gli scr
Timothy

19

Se desideri che l'immagine carichi e visualizzi un'immagine particolare, utilizza .srcper caricare l'URL dell'immagine.

Se desideri un metadati (su qualsiasi tag) che possa contenere un URL, utilizza data-srco qualsiasi altro data-xxxche desideri selezionare.

Documentazione MDN sugli attributi data-xxxx: https://developer.mozilla.org/en-US/docs/DOM/element.dataset

Esempio di srcsu un tag immagine in cui l'immagine carica il JPEG per te e lo visualizza:

<img id="myImage" src="http://mydomain.com/foo.jpg">

<script>
    var imageUrl = document.getElementById("myImage").src;
</script>

Esempio di "data-src" su un tag non immagine in cui l'immagine non è ancora caricata: è solo un pezzo di metadati sul tag div:

<div id="myDiv" data-src="http://mydomain.com/foo.jpg">

<script>
    // in all browsers
    var imageUrl = document.getElementById("myDiv").getAttribute("data-src");

    // or in modern browsers
    var imageUrl = document.getElementById("myDiv").dataset.src;
</script>

Esempio di data-srcsu un tag immagine utilizzato come posizione per memorizzare l'URL di un'immagine alternativa:

<img id="myImage" src="http://mydomain.com/foo.jpg" data-src="http://mydomain.com/foo.jpg">

<script>
    var item = document.getElementById("myImage");
    // switch the image to the URL specified in data-src
    item.src = item.dataset.src;
</script>

4

Il primo <img />non è valido: srcè un attributo obbligatorio. data-srcè un attributo che può essere sfruttato, ad esempio, da JavaScript, ma non ha alcun significato di presentazione.


3
@ AdamPierzchała Il succo è lo stesso: non c'è un "o / o" in questa domanda; srcdeve essere incluso. Puoi utilizzare gli data-attributi per aggiungere dati extra da sfruttare per un linguaggio di scripting (come JavaScript).
Tieson T.

4

L'attributo data-src fa parte della raccolta di attributi data- * introdotta in HTML5. data-src ci consente di memorizzare dati extra che non hanno alcun significato per il browser ma che possono essere utilizzati dal codice Javascript o dalle regole CSS.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.