Type = "text / css" é necessário em uma tag <link>?


192

Eu queria saber se é necessário ou não usar <link rel="stylesheet" type="text/css" href=...>mais <link rel="stylesheet" href=...>. Ele rel="stylesheet"marca as informações de que é uma folha de estilo - portanto text/css, na verdade, não adiciona nada para mim.

O único formato de folha de estilo usado pelo HTML é o CSS, então o que text/css'diz' para o navegador? Alguns sites parecem adicionar o type="text/css"atributo ( http://www.jquery.com/ ), enquanto outros não ( http://www.youtube.com/ ).

Então, para que serve type="text/css"um <link rel="stylesheet">elemento e é necessário incluí-lo?


1
Ele pode ter sido implementadas para atuar como um fallback para servidores que não retornam a correta MIME-typeem .cssarquivos, mas parece que não era sempre necessário. Eu uso apenas por uma questão de consistência.
drudge 23/03

Algo que acabei de encontrar, não especifique type = "" ou o IE não carregará sua folha de estilo.
Mhry1384

Atualmente, o site jquery.com não usa type="text/css", mas o site Stackoverflow ainda o está usando.
Marco Demaio

Respostas:


149

Não é necessário com a especificação HTML5, mas para versões mais antigas do HTML é necessário.

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 O tipo MIME da folha de estilos. O único valor suportado que eu já vi é Texto / CSS, provavelmente o motivo pelo qual o HTML5 o descartou. Eu imagino que eles tinham versões anteriores para permitir possibilidades de expansão futuras que nunca aconteceram.

Usando o HTML5 e não especificando o tipo, até agora não encontrei problemas de compatibilidade, mesmo ao testar versões mais antigas do IE.


24
pode ser necessário na especificação HTML4, mas nenhum navegador realmente a aplica.
Spudley 23/03

4
Bem, há um tipo de "image / ico"
maxisam

2
Na verdade, a especificação HTML4.01 não parece exigir o typeatributo.
Todos os trabalhadores têm Essencial

30

Não é necessário, não.

A parte do HTML Living Standard em que você está interessado é O linkelemento , que afirma:

Um linkelemento deve ter um relatributo ou um itempropatributo, mas não ambos.

O typeatributo fornece o tipo MIME do recurso vinculado. É puramente consultivo. O valor deve ser uma cadeia de caracteres MIME válida.

Para links de recursos externos, o typeatributo é usado como uma dica para os agentes do usuário ...


O que significa "como uma dica para os agentes do usuário ..."? O que são "agentes do usuário"?
ScottyBlades

@ScottyBlades Good question! Um agente de usuário é qualquer coisa que possa agir em nome de um usuário para fazer o download (neste caso) de HTML. Na maioria das vezes, é um navegador da Web, mas também pode ser um cliente de terminal, como o curl.
alexmuller 16/02

6

HTML4.01 não requer o typeatributo em uma <link>tag. De acordo com a especificação, o typeatributo é uma dica para o navegador. Se o navegador não suportar o tipo de conteúdo sugerido, você poderá pular a busca.

tipo = tipo de conteúdo [IC]

Este atributo fornece uma dica de aconselhamento sobre o tipo de conteúdo disponível no endereço de destino do link. Ele permite que os agentes do usuário optem por usar um mecanismo de fallback em vez de buscar o conteúdo se forem avisados ​​de que obterão conteúdo em um tipo de conteúdo que não oferece suporte.

Os autores que usam esse atributo assumem a responsabilidade de gerenciar o risco de que ele se torne inconsistente com o conteúdo disponível no endereço de destino do link.

  • NOTA: <link>adia a <a>definição de para o typeatributo.

1
Esta é a resposta mais útil => basicamente: use o atributo type apenas se o navegador não suportar o type => inútil para arquivos padrão da web, como CSS.
Java.web 13/10/19

4

Meu entendimento é que é para permitir a especificação de folhas de estilo em formatos diferentes de text / css.

Embora esse tenha se tornado o formato de entrega dominante (e padrão) para folhas de estilo para documentos HTML (X), a especificação é ampla o suficiente para permitir a passagem de vários tipos MIME diferentes, mas os navegadores padrão não os implementam.


1

Não é relevante para a maioria das pessoas, mas alguns sistemas (pelo menos o Microsoft SharePoint 2013) usarão esse atributo de tipo ao descobrir como processar HTML (por exemplo, ao criar um arquivo de página .master).


-1

Não, apenas representa o tipo MIME, foi preterido em HTML. Podemos deixar de usá-lo sem qualquer compatibilidade com o navegador.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.