¿Es necesario type = “text / css” en una etiqueta <link>?


192

Me preguntaba si es necesario o no usar <link rel="stylesheet" type="text/css" href=...>más <link rel="stylesheet" href=...>. Esto rel="stylesheet"marca la información de que es una hoja de estilo, por lo text/cssque en realidad no agrega nada en lo que a mí respecta.

El único formato de hoja de estilo utilizado por HTML es CSS de todos modos, entonces, ¿qué text/css"dice" al navegador? Algunos sitios web parecen agregar el type="text/css"atributo ( http://www.jquery.com/ ), mientras que otros no ( http://www.youtube.com/ ).

Entonces, ¿de qué sirve type="text/css"un <link rel="stylesheet">elemento? ¿Es necesario incluirlo?


1
Es posible que se haya implementado para actuar como respaldo para servidores que no devuelven lo correcto MIME-typeen los .cssarchivos, pero parece que nunca fue necesario. Lo uso solo por razones de consistencia.
Drudge

Algo que acabo de encontrar, no especifique type = "" o IE no cargará su hoja de estilo.
mhenry1384

Hoy en día el sitio jquery.com no usa type="text/css", pero el sitio Stackoverflow todavía lo está usando.
Marco Demaio

Respuestas:


149

No se requiere con la especificación HTML5, pero se requiere para versiones anteriores de 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

Tipo significa El tipo MIME de la hoja de estilo. El único valor admitido que he visto es Text / CSS, que es probablemente la razón por la que HTML5 lo ha eliminado. Me imagino que lo tenían para versiones anteriores para permitir futuras posibilidades de expansión que nunca sucedieron.

Usando HTML5 y sin especificar el tipo, hasta ahora no he tenido problemas de compatibilidad, incluso al probar versiones anteriores de IE.


24
puede ser requerido en la especificación HTML4, pero ningún navegador realmente lo exige.
Spudley

44
bueno, hay un tipo para "image / ico"
maxisam

2
En realidad, la especificación HTML4.01 no parece requerir el typeatributo.
Todos los trabajadores son esenciales

30

No es obligatorio, no.

La parte del estándar de vida HTML que le interesa es el linkelemento , que establece:

Un linkelemento debe tener un relatributo o un itempropatributo, pero no ambos.

El typeatributo proporciona el tipo MIME del recurso vinculado. Es puramente consultivo. El valor debe ser una cadena de tipo MIME válida.

Para enlaces de recursos externos, el typeatributo se utiliza como una pista para los agentes de usuario ...


¿Qué significa "como una pista para los agentes de usuario ..."? ¿Qué son los "agentes de usuario"?
ScottyBlades

@ScottyBlades ¡Buena pregunta! Un agente de usuario es cualquier cosa que pueda actuar en nombre de un usuario para descargar (en este caso) HTML. La mayoría de las veces es un navegador web, pero también podría ser un cliente terminal como curl.
alexmuller

6

HTML4.01 no requiere el typeatributo en una <link>etiqueta. Según la especificación, el typeatributo es una pista para el navegador. Si el navegador no admite el tipo de contenido insinuado, puede omitir la búsqueda.

tipo = tipo de contenido [CI]

Este atributo proporciona una pista de asesoramiento sobre el tipo de contenido del contenido disponible en la dirección de destino del enlace. Permite a los agentes de usuario optar por utilizar un mecanismo de reserva en lugar de buscar el contenido si se les informa que obtendrán contenido en un tipo de contenido que no admiten.

Los autores que usan este atributo asumen la responsabilidad de gestionar el riesgo de que pueda ser inconsistente con el contenido disponible en la dirección de destino del enlace.

  • NOTA: <link>difiere de <a>la definición del typeatributo.

1
Esta es la respuesta más útil => básicamente: solo use el atributo type si el navegador no admite el tipo => inútil para archivos estándar web como CSS.
jave.web

4

Entiendo que es para permitir la especificación de hojas de estilo en formatos que no sean text / css.

Si bien ese se ha convertido en el formato de entrega dominante (y estándar) para las hojas de estilo para documentos HTML (X), la especificación es en realidad lo suficientemente amplia como para permitir que se pasen una variedad de diferentes tipos MIME, es solo que los navegadores estándar no los implementan.


1

No es relevante para la mayoría de las personas, pero algunos sistemas (al menos Microsoft SharePoint 2013) utilizarán este atributo de tipo al determinar cómo procesar HTML (por ejemplo, al crear un archivo de página .master).


-1

No, solo significa tipo MIME, ha quedado en desuso en HTML, podemos dejar de usarlo sin compatibilidad con el navegador.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.