Ist type = "text / css" in einem <link> -Tag erforderlich?


192

Ich habe mich gefragt, ob es notwendig ist, <link rel="stylesheet" type="text/css" href=...>über zu verwenden <link rel="stylesheet" href=...>. Das rel="stylesheet"markiert die Information, dass es sich um ein Stylesheet handelt - text/cssfügt also für mich eigentlich nichts hinzu.

Das einzige von HTML verwendete Stylesheet-Format ist ohnehin CSS. Was text/csssagt der Browser also? Einige Websites scheinen das type="text/css"Attribut hinzuzufügen ( http://www.jquery.com/ ), andere nicht ( http://www.youtube.com/ ).

Was nützt type="text/css"ein <link rel="stylesheet">Element und muss es aufgenommen werden?


1
Es kann als Ausweich für Server zu handeln implementiert , die die korrekten nicht zurück MIME-typeauf .cssDateien, aber es scheint es nicht immer notwendig war. Ich benutze es nur aus Gründen der Konsistenz.
Plackerei

Etwas, auf das ich gerade gestoßen bin, geben Sie nicht type = "" an, sonst lädt der IE Ihr Stylesheet nicht.
Mhenry1384

Heutzutage wird die jquery.com- Site nicht verwendet type="text/css", aber die Stackoverflow-Site verwendet sie immer noch.
Marco Demaio

Antworten:


149

Es ist mit der HTML5-Spezifikation nicht erforderlich, aber für ältere HTML-Versionen ist es erforderlich.

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 steht für Der MIME-Typ des Stylesheets. Der einzige unterstützte Wert, den ich jemals gesehen habe, ist Text / CSS, weshalb HTML5 ihn wahrscheinlich gelöscht hat. Ich kann mir vorstellen, dass sie es für frühere Versionen hatten, um zukünftige Erweiterungsmöglichkeiten zu ermöglichen, die nie stattgefunden haben.

Wenn ich HTML5 verwende und den Typ nicht spezifiziere, habe ich bisher keine Probleme mit der Kompatibilität gehabt, selbst wenn ich ältere Versionen von IE getestet habe.


24
Möglicherweise ist es in der HTML4-Spezifikation erforderlich, aber kein Browser erzwingt es tatsächlich.
Spudley

4
Nun, es gibt einen Typ für "image / ico"
Maxisam

2
Tatsächlich scheint die HTML4.01-Spezifikation das typeAttribut nicht zu erfordern .
Alle Arbeiter sind wesentlich

30

Es ist nicht erforderlich, nein.

Der Teil des HTML-Lebensstandards, an dem Sie interessiert sind, ist das linkElement , das Folgendes angibt:

Ein linkElement muss entweder ein relAttribut oder ein itempropAttribut haben, aber nicht beide.

Das typeAttribut gibt den MIME-Typ der verknüpften Ressource an. Es ist rein beratend. Der Wert muss eine gültige Zeichenfolge vom Typ MIME sein.

Bei externen Ressourcenlinks wird das typeAttribut als Hinweis für Benutzeragenten verwendet ...


Was bedeutet "als Hinweis für Benutzeragenten ..."? Was sind "Benutzeragenten"?
ScottyBlades

@ ScottyBlades Gute Frage! Ein Benutzeragent ist alles, was im Namen eines Benutzers handeln kann, um (in diesem Fall) HTML herunterzuladen. Meistens ist das ein Webbrowser, aber es kann auch ein Terminal-Client wie Curl sein.
Alexmüller

6

HTML4.01 benötigt das typeAttribut für ein <link>Tag nicht. Entsprechend der Spezifikation ist das typeAttribut ein Hinweis auf den Browser. Wenn der Browser den angegebenen Inhaltstyp nicht unterstützt, kann er das Abrufen überspringen.

Typ = Inhaltstyp [CI]

Dieses Attribut gibt einen Hinweis auf den Inhaltstyp des Inhalts, der unter der Link-Zieladresse verfügbar ist. Benutzeragenten können einen Fallback-Mechanismus verwenden, anstatt den Inhalt abzurufen, wenn ihnen mitgeteilt wird, dass sie Inhalte in einem Inhaltstyp erhalten, den sie nicht unterstützen.

Autoren, die dieses Attribut verwenden, übernehmen die Verantwortung für das Risiko, dass es nicht mehr mit dem unter der Linkzieladresse verfügbaren Inhalt übereinstimmt.

  • HINWEIS: <link>Verschiebt die <a>Definition für das typeAttribut.

1
Dies ist die hilfreichste Antwort => im Grunde: Verwenden Sie das Typattribut nur, wenn der Browser den Typ nicht unterstützt => für Webstandarddateien wie CSS unbrauchbar.
jave.web

4

Mein Verständnis ist, dass es die Angabe von Stylesheets in anderen Formaten als Text / CSS ermöglichen soll.

Während dies das dominierende (und Standard-) Übermittlungsformat für Stylesheets für (X) HTML-Dokumente geworden ist, ist die Spezifikation tatsächlich breit genug, um die Übergabe einer Vielzahl verschiedener MIME-Typen zu ermöglichen. Standardbrowser implementieren sie lediglich nicht.


1

Für die meisten Benutzer nicht relevant, aber einige Systeme (zumindest Microsoft SharePoint 2013) verwenden dieses Typattribut, wenn sie herausfinden, wie HTML verarbeitet wird (z. B. beim Erstellen einer Masterseitendatei).


-1

Nein, es steht nur für MIME-Typ, es ist in HTML veraltet. Wir können es ohne Browserkompatibilität löschen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.