web-dev-qa-db-fra.com

Type = "text / css" est-il nécessaire dans une balise <link>?

Je me demandais s'il était nécessaire d'utiliser <link rel="stylesheet" type="text/css" href=...> plus de <link rel="stylesheet" href=...>. Le rel="stylesheet" marque l’information qu’il s’agit d’une feuille de style - donc text/css n'ajoute rien en ce qui me concerne.

Le seul format de feuille de style utilisé par HTML est de toute façon CSS, alors que fait text/css 'dire' au navigateur? Certains sites Web semblent ajouter le type="text/css" attribut ( http://www.jquery.com/ ), contrairement aux autres ( http://www.youtube.com/ ).

Alors, quelle est l'utilisation de type="text/css" dans un <link rel="stylesheet"> élément, et est-il nécessaire de l'inclure?

184
pimvdb

Ce n'est pas obligatoire avec la spécification HTML5, mais pour les anciennes versions de HTML, cela est nécessaire.

Html 4 Spéc. W3.org

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

Type représente le type MIME de la feuille de style. La seule valeur prise en charge que j'ai jamais vue est Text/CSS, ce qui explique probablement pourquoi HTML5 l'a abandonné. J'imagine qu'ils l'avaient dans les versions précédentes pour permettre des possibilités d'extension futures qui ne se sont jamais produites.

À l'aide de HTML5 et sans spécifier le type, je n'ai rencontré aucun problème de compatibilité, même lors du test d'anciennes versions d'IE.

144
Tom Gullen

Ce n'est pas obligatoire, non.

La partie du HTML Living Standard qui vous intéresse est L'élément link , qui indique:

Un élément link doit avoir un attribut rel ou un attribut itemprop, mais pas les deux.

L'attribut type donne le type MIME de la ressource liée. C'est purement consultatif. La valeur doit être une chaîne de type MIME valide.

Pour les liens de ressources externes, l’attribut type sert de conseil aux agents utilisateurs ...

29
alexmuller

Si j'ai bien compris, cela permet d'autoriser la spécification de feuilles de style dans des formats autres que text/css.

Bien que ce format soit devenu le format de livraison dominant (et standard) des feuilles de style pour les documents (X) HTML, la spécification est en fait suffisamment large pour permettre la transmission de nombreux types MIME, mais les navigateurs standard ne les implémentent pas.

4
GShenanigan

HTML4.01 ne nécessite pas l'attribut type sur une balise <link> . Selon la spécification, l'attribut type est un indice pour le navigateur. Si le navigateur ne prend pas en charge le type de contenu suggéré, il peut ignorer son extraction.

type = type de contenu [CI]

Cet attribut donne une indication sur le type de contenu du contenu disponible à l'adresse cible du lien. Il permet aux agents utilisateurs d’opter pour un mécanisme de secours plutôt que de récupérer le contenu s’ils sont informés qu’ils obtiendront du contenu dans un type de contenu qu’ils ne prennent pas en charge.

Les auteurs qui utilisent cet attribut assument la responsabilité de gérer le risque d'incohérence avec le contenu disponible à l'adresse de la cible du lien.

  • REMARQUE: <link> Renvoie à la définition de <a> Pour l'attribut type.
3
cpburnz

Pas pertinent pour la plupart des utilisateurs, mais certains systèmes (au moins Microsoft SharePoint 2013) utiliseront cet attribut de type pour déterminer comment traiter le format HTML (par exemple, lors de la création d'un fichier de page .master).

1
David Gilbertson

Non, il ne s'agit que du type MIME, il est obsolète en HTML. Nous pouvons le laisser utiliser sans compatibilité avec le navigateur.

0
prasen sinha