SRC
I HREF
atrybuty są wykorzystywane w celu włączenia niektórych podmiotów zewnętrznych, takich jak obraz, plik CSS, plik HTML, każda inna strona internetowa lub plik JavaScript.
Czy istnieje wyraźne rozróżnienie między SRC
i HREF
? Gdzie i kiedy używać SRC
lub HREF
? Myślę, że nie można ich używać zamiennie.
Poniżej podajemy kilka przykładów użycia tych atrybutów:
- Aby odnieść się do pliku CSS:
href="cssfile.css"
wewnątrz tagu linku. - Aby odnieść się do pliku JS:
src="myscript.js"
wewnątrz tagu script. - Aby odnieść się do pliku obrazu:
src="mypic.jpg"
wewnątrz tagu obrazu. - Aby odesłać do innej strony internetowej:
href="http://www.webpage.com"
wewnątrz tagu kotwicy.
Odpowiedzi:
UWAGA: @ Johna-yin za odpowiedź jest bardziej odpowiednie biorąc pod uwagę zmiany w specyfikacji.
Tak. Istnieje różnica między src i href i nie można ich używać zamiennie. Używamy src do zastępowanych elementów, a href do ustanawiania relacji między dokumentem odniesienia a zasobem zewnętrznym.
Atrybut href (odniesienie hipertekstowe) określa lokalizację zasobu internetowego, definiując w ten sposób łącze lub relację między bieżącym elementem (w przypadku kotwicy
a
) lub bieżącym dokumentem (w przypadkulink
) a docelową kotwicą lub zasobem zdefiniowanym przez ten atrybut. Kiedy piszemy:Przeglądarka rozumie, że ten zasób to arkusz stylów, a plik
przetwarzanieanalizowanie strony nie jest wstrzymane (renderowanie może zostać wstrzymane, ponieważ przeglądarka potrzebuje reguł stylu do malowania i renderowania strony). Nie jest to podobne do zrzucania zawartości pliku css wewnątrzstyle
tagu. (Dlatego zaleca się używanielink
zamiast@import
dołączania arkuszy stylów do dokumentu HTML).src (Source) po prostu osadza zasób w bieżącym dokumencie w miejscu definicji elementu. Np. Gdy przeglądarka znajdzie
Ładowanie i przetwarzanie strony zostaje wstrzymane do czasu, gdy przeglądarka pobierze, skompiluje i uruchomi plik. Jest to podobne do zrzucania zawartości pliku js wewnątrz
script
tagu. Podobnie jest zimg
tagiem. Jest to pusty tag, a treść, która ma się w nim znaleźć, jest definiowana przezsrc
atrybut. Przeglądarka wstrzymuje ładowanie do czasu pobrania i załadowania obrazu. [tak jest w przypadkuiframe
]To jest powód, dla którego wskazane jest ładowanie wszystkich plików JavaScript na dole (przed
</body>
tagiem)aktualizacja : zapoznaj się z odpowiedzią @ John-Yin, aby uzyskać więcej informacji na temat sposobu implementacji zgodnie ze specyfikacjami HTML 5.
źródło
src
generalnie ładuje plik po kolei, jednocześnie ładująchref
go równolegle. Zatem postrzegany czas ładowania wzrasta, gdy zasoby są ładowane szeregowo.Odpowiedź apnerve była poprawna przed pojawieniem się HTML 5, teraz jest trochę bardziej skomplikowana.
Na przykład
script
element, zgodnie ze specyfikacją HTML 5 , ma dwa globalne atrybuty, które zmieniają sposób działaniasrc
atrybutu:async
idefer
. Zmieniają one sposób wykonywania skryptu (osadzonego w tekście lub importowanego z pliku zewnętrznego).Oznacza to, że istnieją trzy możliwe tryby, które można wybrać za pomocą tych atrybutów:
async
atrybut jest obecny, skrypt zostanie wykonany asynchronicznie, gdy tylko będzie dostępny.async
atrybut nie istnieje, aledefer
atrybut jest obecny, skrypt jest wykonywany po zakończeniu analizowania strony.Aby uzyskać szczegółowe informacje, zapoznaj się z zaleceniem HTML 5
Chciałem tylko zaktualizować nową odpowiedź dla każdego, kto od czasu do czasu odwiedza ten temat. Niektóre odpowiedzi powinny zostać sprawdzone i zarchiwizowane przez stackoverflow i każdego z nas.
źródło
Myślę, że
<src>
dodaje trochę zasobów do strony i<href>
służy tylko do podania linku do zasobu (bez dodawania samego zasobu do strony).źródło
Prosta definicja
źródło
SRC ( S ou rc e) - Chcę załadować ten zasób dla siebie.
Na przykład:
HREF ( H ypertext REF erence ) - Chcę odnieść się do tego zasobu dla kogoś innego.
Na przykład:
Kurtuazja
źródło
H REF : Czy REF różnicą do informacji dla bieżącej strony czyli o css dla stylu strony lub link do innej strony. Analiza strony nie została zatrzymana.
SRC : to ponowne ŹRÓDŁO do dodania / załadowania do strony, jak w obrazach lub javascript. Analiza strony może się zatrzymać w zależności od zakodowanego atrybutu. Dlatego lepiej jest dodać skrypt tuż przed końcowym tagiem body, aby renderowanie strony nie zostało wstrzymane.
źródło
Jeśli mówisz o HTML4, jego lista atrybutów może pomóc ci w subtelnościach. Nie są wymienne.
źródło
Od W3:
Źródło: http://www.w3.org/TR/html401/struct/links.html
Źródło: http://www.w3.org/TR/REC-html40/struct/objects.html
źródło
Prosta definicja
źródło
Należy pamiętać, kiedy użyć wszystkich i że jest to href jest używany wraz z linkami
src służy pomocą skryptów i obrazów
url jest stosowany powszechnie w CSS zawierać coś dla exemple dodać obraz tła
źródło
po przejrzeniu dokumentacji HTML 5.1 (1 listopada 2016):
część 4 (Elementy HTML)
nie zawiera
src
atrybutu ...wiedźma jest logiczna, ponieważ jest łączem.
nie wspomina nawet o
href
atrybucie ...oznacza to, że podczas używania tagów skryptu zawsze używaj
src
atrybutu !!!również nie wspomina o
href
atrybucie ...oznacza to, że podczas używania
img
tagówsrc
atrybut powinien być również używany ...Odnośnik do rekomendacji W3C
źródło
Nie są wymienne - każdy jest zdefiniowany na innym elemencie, jak widać tutaj .
Rzeczywiście mają podobne znaczenie, więc jest to niespójność. Zakładałbym głównie ze względu na różne tagi wdrażane przez różnych dostawców na początku, a następnie uwzględnione w specyfikacji, aby uniknąć zerwania wstecznej kompatybilności.
źródło
src
Tag dodaje zasobu do strony natomiasthref
tylko zawiera link do zasobu oraz ustanawia stosunki z dokumentu.Nie mają podobnego znaczenia. „src” wskazuje zasób, który przeglądarka powinna pobrać jako część bieżącej strony. HREF wskazuje zasób do pobrania, jeśli użytkownik tego zażąda.
źródło
<link href="foo.css" rel="stylesheet" type="text/css">
href
wskazuje zasób do pobrania, jeśli klient użytkownika tego zażąda. Arkusz stylów nie jest pobierany jako część bieżącego dokumentu.Zgadzam się z tym, co apnerve mówi o tym rozróżnieniu. Ale w przypadku css wygląda to dziwnie. Ponieważ css jest również pobierany do klienta przez przeglądarkę. To nie jest jak tag kotwicy, który wskazuje na konkretny zasób. Dlatego użycie href wydaje mi się dziwne. Nawet jeśli nie jest załadowana stroną, nadal bez tej strony nie może wyglądać na kompletną, a więc nie jest to tylko relacja, ale jak zasób, który z kolei odnosi się do wielu innych zasobów, takich jak obrazy.
źródło
CSS
jest częściąHTML
dokumentu, możesz użyć go dalej i użyćstyle
tagu z@import
regułą. Może to mieć wpływ na wydajność, ale ma sens w tym scenariuszu.src służy do dodawania tego zasobu do strony, podczas gdy href służy do łączenia z określonym zasobem z tej strony.
Kiedy używasz na swojej stronie internetowej, przeglądarka widzi, że jest to arkusz stylów i dlatego kontynuuje renderowanie strony, gdy arkusz stylów jest pobierany w parellel.
Kiedy używasz na swojej stronie internetowej, mówi przeglądarce, aby wstawiła zasób w tej lokalizacji. Teraz przeglądarka musi pobrać plik js, a następnie go załadować. Dopóki przeglądarka nie zakończy procesu ładowania, proces renderowania strony jest wstrzymany. To jest powód, dla którego YUI zaleca ładowanie plików JS na samym dole strony internetowej.
źródło