Czy typ = „text / css” jest konieczny w znaczniku <link>?


192

Zastanawiałem się, czy konieczne jest użycie <link rel="stylesheet" type="text/css" href=...> ponad <link rel="stylesheet" href=...>. Te rel="stylesheet"znaki informacyjne, że jest to arkusz stylów - tak text/cssw rzeczywistości nie dodać czegoś o ile mi wiadomo.

Jedynym formatem arkusza stylów używanym przez HTML jest CSS, więc co text/css„mówi” przeglądarce? Niektóre witryny wydają się dodawać type="text/css"atrybut ( http://www.jquery.com/ ), podczas gdy inne nie ( http://www.youtube.com/ ).

Więc jakie jest zastosowanie type="text/css"w<link rel="stylesheet"> elemencie, a jest to konieczne, aby uwzględnić go?


1
Może to zostały wprowadzone do działania jako awaryjne dla serwerów, które nie zwracają poprawne MIME-typena .cssplikach, ale wydaje się, że nigdy nie był konieczny. Używam tego tylko dla zachowania spójności.
pogoń

Coś, na co właśnie wpadłem, nie określaj type = "", inaczej IE nie załaduje twojego arkusza stylów.
mhenry1384

Obecnie witryna jquery.com nie korzysta type="text/css", ale witryna Stackoverflow nadal z niej korzysta.
Marco Demaio,

Odpowiedzi:


149

Nie jest to wymagane w specyfikacji HTML5, ale jest wymagane w przypadku starszych wersji HTML.

HTML 4 W3.org spec

http://www.w3.org/TR/html40/struct/links.html#edef-LINK http://www.w3.org/TR/html40/present/styles.html

Typ oznacza typ arkusza stylów MIME. Jedyną obsługiwaną wartością, jaką kiedykolwiek widziałem, jest Text / CSS, prawdopodobnie dlatego HTML5 ją upuścił. Wyobrażam sobie, że mieli to dla wcześniejszych wersji, aby umożliwić przyszłe możliwości ekspansji, które nigdy się nie wydarzyły.

Używając HTML5 i nie określając typu, do tej pory nie miałem problemów ze zgodnością, nawet podczas testowania starszych wersji IE.


24
może być wymagane w specyfikacji HTML4, ale żadna przeglądarka tak naprawdę tego nie wymusza.
Spudley

4
Cóż, istnieje typ dla „image / ico”
maxisam

2
W rzeczywistości specyfikacja HTML4.01 nie wydaje się wymagać typeatrybutu.
Wszyscy pracownicy są niezbędni

30

Nie jest wymagane, nie.

Część HTML standardu życia jesteś zainteresowany jest elementem , który stanowi:link

linkElement musi mieć albo relatrybut lub itempropatrybut, ale nie oba.

typeAtrybut daje typ MIME połączonego zasobu. Jest to czysto doradcze. Wartość musi być poprawnym ciągiem typu MIME.

W przypadku zewnętrznych łączy zasobów typeatrybut ten służy jako wskazówka dla klientów użytkownika ...


Co oznacza „jako wskazówka dla programów klienckich…”? Co to są „aplikacje klienckie”?
ScottyBlades

@ScottyBlades Dobre pytanie! Agent użytkownika to wszystko, co może działać w imieniu użytkownika, aby pobrać (w tym przypadku) kod HTML. Zazwyczaj jest to przeglądarka internetowa, ale może to być również klient terminalowy, taki jak curl.
alexmuller

6

HTML4.01 nie wymaga typeatrybutu na <link>znaczniku. Zgodnie ze specyfikacją typeatrybut jest wskazówką dla przeglądarki. Jeśli przeglądarka nie obsługuje wskazanego typu treści, może pominąć pobieranie.

type = content-type [CI]

Ten atrybut daje wskazówkę dotyczącą typu zawartości dostępnej pod adresem docelowym łącza. Umożliwia agentom użytkownika wybranie mechanizmu rezerwowego zamiast pobierania zawartości, jeśli zostanie im zalecone, że otrzymają treść w typie, którego nie obsługują.

Autorzy, którzy używają tego atrybutu, biorą odpowiedzialność za zarządzanie ryzykiem, że może ono stać się niezgodne z treściami dostępnymi pod docelowym adresem linku.

  • UWAGA: <link>odsyła do <a>definicji typeatrybutu.

1
Jest to najbardziej pomocna odpowiedź => w zasadzie: użyj atrybutu type tylko wtedy, gdy przeglądarka może nie obsługiwać type => bezużytecznego dla standardowych plików internetowych, takich jak CSS.
jave.web

4

Rozumiem, że pozwala to na specyfikację arkuszy stylów w formatach innych niż text / css.

Chociaż stał się dominującym (i standardowym) formatem dostarczania arkuszy stylów dla dokumentów HTML (X), specyfikacja jest w rzeczywistości wystarczająco szeroka, aby umożliwić przekazywanie różnych typów MIME, po prostu standardowe przeglądarki nie implementują ich.


1

Nie dotyczy większości osób, ale niektóre systemy (przynajmniej Microsoft SharePoint 2013) będą używać tego atrybutu tego typu podczas opracowywania sposobu przetwarzania HTML (np. Podczas tworzenia pliku strony .master).


-1

Nie, to oznacza po prostu typ MIME, został przestarzały w HTML, Możemy go upuścić bez kompatybilności z przeglądarką.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.