Type = "text / css" è necessario in un tag <link>?


192

Mi chiedevo se fosse necessario usarlo o <link rel="stylesheet" type="text/css" href=...>meno <link rel="stylesheet" href=...>. I rel="stylesheet"segni l'informazione che si tratta di un foglio di stile - in modo text/cssrealmente non aggiunge nulla, per quanto mi riguarda.

L'unico formato di foglio di stile utilizzato da HTML è comunque CSS, quindi cosa significa text/css"dire" al browser? Alcuni siti Web sembrano aggiungere l' type="text/css"attributo ( http://www.jquery.com/ ), mentre altri no ( http://www.youtube.com/ ).

Quindi, a che cosa serve type="text/css"un <link rel="stylesheet">elemento ed è necessario includerlo?


1
Potrebbe essere stato implementato per agire come un ripiego per i server che non restituiscono il corretto MIME-typesu .cssfile, ma sembra che non era mai necessario. Lo uso solo per motivi di coerenza.
Drudge

Qualcosa in cui mi sono appena imbattuto, non specificare type = "" o IE non caricherà il tuo foglio di stile.
mhenry1384,

Oggi il sito jquery.com non utilizza type="text/css", ma il sito Stackoverflow lo sta ancora utilizzando.
Marco Demaio,

Risposte:


150

Non è richiesto con le specifiche HTML5, ma per le versioni precedenti di HTML è richiesto.

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 sta per Il tipo MIME del foglio di stile. L'unico valore supportato che abbia mai visto è Text / CSS, motivo per cui HTML5 lo ha abbandonato. Immagino che ce l'avessero per le versioni precedenti per consentire future possibilità di espansione che non si sono mai verificate.

Usando HTML5 e non specificando il tipo, mi sono imbattuto finora in problemi di compatibilità anche durante il test di versioni precedenti di IE.


24
potrebbe essere richiesto nelle specifiche HTML4, ma nessun browser lo applica effettivamente.
Spudley,

4
bene, c'è un tipo per "image / ico"
maxisam

2
In realtà, la specifica HTML4.01 non sembra richiedere l' typeattributo.
Tutti i lavoratori sono essenziali il

30

Non è richiesto, no.

La parte del HTML Living Standard che ti interessa è l' linkelemento , che afferma:

Un linkelemento deve avere un relattributo o un itempropattributo, ma non entrambi.

L' typeattributo fornisce il tipo MIME della risorsa collegata. È puramente consultivo. Il valore deve essere una stringa di tipo MIME valida.

Per i collegamenti di risorse esterne, l' typeattributo viene utilizzato come suggerimento per gli agenti utente ...


Che cosa significa "come suggerimento per gli user agent ..."? Cosa sono gli "user agent"?
ScottyBlades,

@ScottyBlades Buona domanda! Un agente utente è tutto ciò che può agire per conto di un utente per scaricare (in questo caso) HTML. Il più delle volte è un browser web, ma potrebbe anche essere un client terminale come curl.
alexmuller,

6

HTML4.01 non richiede l' typeattributo su un <link>tag. Secondo le specifiche, l' typeattributo è un suggerimento per il browser. Se il browser non supporta il tipo di contenuto suggerito, può saltare il recupero.

type = content-type [CI]

Questo attributo fornisce un suggerimento consultivo sul tipo di contenuto del contenuto disponibile all'indirizzo di destinazione del collegamento. Consente agli agenti utenti di scegliere di utilizzare un meccanismo di fallback anziché recuperarne il contenuto se viene avvisato che otterranno il contenuto in un tipo di contenuto che non supportano.

Gli autori che utilizzano questo attributo si assumono la responsabilità di gestire il rischio che possa diventare incoerente con il contenuto disponibile all'indirizzo di destinazione del collegamento.

  • NOTA: <link>passa alla <a>definizione dell ' typeattributo.

1
Questa è la risposta più utile => in sostanza: usa l'attributo type solo se il browser potrebbe non supportare type => inutile per file standard web come CSS.
jave.web,

4

La mia comprensione è che è per consentire la specifica di fogli di stile in formati diversi da text / css.

Mentre quello è diventato il formato di consegna dominante (e standard) per i fogli di stile per i documenti (X) HTML, la specifica è in realtà abbastanza ampia da consentire il passaggio di una varietà di diversi tipi MIME, è solo che i browser standard non li implementano.


1

Non pertinente per la maggior parte delle persone, ma alcuni sistemi (almeno Microsoft SharePoint 2013) utilizzeranno questo attributo di tipo per capire come elaborare HTML (ad esempio durante la creazione di un file di paging .master).


-1

No significa solo MIME, è stato deprecato in HTML, possiamo lasciarlo cadere senza alcuna compatibilità con il browser.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.