Devi chiudere i tag meta e link in HTML?


133

Stavo solo leggendo l'HTML di qualcuno che non ha mai chiuso i tag meta e link nella sezione head HTML. Il codice ha funzionato bene; la chiusura di questi tag è facoltativa?

Ho pensato che sarebbe stato malformato se un tag non fosse stato chiuso.

Risposte:


167

Un tag deve essere sempre chiuso dal simbolo di chiusura tag> (se ignoriamo alcune regole SGML che si applicano nominalmente in HTML non XHTML ma non sono mai state implementate nei browser).

Quello che intendi chiedere è se gli elementi devono essere chiusi da tag di fine. La risposta è che non XHTML HTML (tra cui HTML5 in HTML serializzazione), non tag di fine è richiesto o consentito per metae linkgli elementi. In pratica, tuttavia, i browser ignorano semplicemente i tag di fine espliciti per loro, così come il cargo-cult /prima >, se li usi. E HTML5 rende questa permissività una regola consentendo anche formalmente anche la /serializzazione in HTML.

In XHTML si applicano le regole XML, quindi ogni elemento, senza eccezioni, deve avere sia un tag iniziale che un tag finale, ma lo stesso tag può essere utilizzato per entrambi i ruoli se il contenuto dell'elemento è vuoto, ad <meta name="foo" content="bar"/>esempio abbreviato <meta name="foo" content="bar"></meta>. Se si viola questo quando si offre un documento con un tipo di contenuto XML (XHTML) a un browser conforme, il documento non viene visualizzato affatto; viene invece visualizzato un messaggio di errore.

Quando si utilizza un server XHTML con il tipo di contenuto HTML ( Content-Type: text/html), poiché i documenti XHTML sono quasi sempre sul Web, i browser applicheranno effettivamente le regole HTML non XHTML.

Riassumere:

  • normalmente, usa solo <meta ...>con no/
  • se stai davvero usando XHTML in un contesto in cui viene effettivamente applicato l'analisi XHTML, gioca secondo le regole XML (e assicurati di conoscerle)
  • se il tuo capo ti dice di scrivere <meta ... />, fallo; non è utile, ma non provoca alcun danno (tranne se si tenta di convalidare, ad esempio, il documento HTML 4.01).

3
l'utilizzo di /> ha causato un problema a causa del quale google bot non ha riconosciuto il tag meta robot. strano!!!
DevZer0,

13
Trovo il termine "cult-cargo" inappropriato in questo contesto. Alcune persone chiudono quegli elementi, semplicemente perché reprimono che XHTML non ha prevalso.
Marcus,

6
Avviso pedante! Il "culto del carico" non viene sillabato nella pratica normale, ma solo quando si utilizza l'intera frase come aggettivo per qualcos'altro (ovvero "programmazione del culto del carico", "culto del carico /prima >"). Ho solo pensato di chiarire per evitare di confondere Internet con più confusione. </pedant_alert>:)
Aaron Wallentine

1
@ DevZer0 - sei sicuro che la causa sia stata la barra? Mi aspetto che Google sia flessibile con cose del genere.
Simon East,

3
Rendere il tuo HTML coerente con le regole XHTML non è un motivo per includere il / prima>?
Kyle Delaney,

28

Dipende dal tipo di documento. HTML5 non ha bisogno della chiusura. XHTML lo fa.

In HTML5, i cosiddetti elementi vuoti (elementi che non possono avere contenuto) non necessitano della chiusura, poiché si chiudono automaticamente. Ma è ancora valido se li chiudi ..

Leggi di più qui: void-elements


4
HTML5 ha due serializzazioni e una di esse (serializzazione XHTML) rende i tag di fine obbligatori.
Jukka K. Korpela,
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.