Qual è l'implementazione corretta del meta elemento in HTML5?

2

Ho guardato un video per imparare l'HTML. So di HTML ma volevo solo aggiornare la mia conoscenza. L'autore ha dichiarato che sta usando HTML5 perché il doctype era:

<!doctype html>

ma ho notato che l'autore ha utilizzato l'elemento meta in uno stile diverso a cui mi sono abituato, l'ha usato senza la barra diretta per chiudere l'elemento come segue:

<meta charset="utf-8"> 

e quello che so di questo è che dovrebbe essere come il seguente:

<meta charset="utf-8" />

Quale degli elementi sopra è considerato HTML5? Ho provato a cercare online ma sembra che ogni web designer abbia un'opinione diversa che mi ha confuso. Mi piacciono gli standard.

    
posta Maryam 17.09.2013 - 22:51
fonte

2 risposte

8

Il mio SGML è arrugginito, quindi spero che qualcuno venga a correggerla, ma ...

Questa riga è SGML che è un super set di HTML e XML.

<!doctype html>

Il <! indica che il documento dovrebbe tornare indietro per seguire le direttive SGML, non il documento genitore. Questa è la stessa ragione per cui <!-- è il modo di iniziare un commento in XML e HTML. <! scende a SGML e -- è il solito delimitatore per i commenti in SGML. Nella riga di codice precedente, <! doctype html> è SGML valido per la dichiarazione del doctype.

Mentre questa riga fa parte del documento standard e deve seguire le regole dei documenti (dichiarate dal doctype o dallo schema dipendente dal documento):

<meta charset="utf-8"> 

In questo le regole SGML non si applicano più poiché stiamo guardando qualcosa che deve essere conforme all'HTML. Ora, a seconda che si tratti di HTML4, HTML5 o XHTML, il modo in cui il tag viene chiuso cambia.

In HTML4 molti tag non avevano bisogno di essere chiusi, e in effetti in alcuni casi era vietato chiudere. Questo include <meta> , <img> e <p> tag, dove solo a quest'ultimo era permesso di essere chiuso (come </p> ) l'altro 2 dovrebbe essere lasciato così com'è con attributi e senza tag di chiusura - perché nella loro dichiarazione essi non avevo bisogno di tag di chiusura.

Tuttavia, in XHTML sono stati fatti tentativi per rendere l'HTML conforme a XML. Un obiettivo nobile, tuttavia ciò significava che la tag tag autonoma <meta> o <img> doveva essere autochiudente in quanto non conteneva contenuto e diventava <meta /> e <img /> in XHTML. Tuttavia, le persone troppo zelanti hanno iniziato a farlo anche nei documenti HTML4. Tecnicamente inverso, ma la maggior parte dei parser HTML sono molto gentili e mangiano HTML molto peggio, quindi non hanno mai prestato attenzione.

Quando HTML5 è arrivato, tutti hanno riconosciuto che le persone stavano scrivendo tag a chiusura automatica in HTML e il W3C ha detto, "hey sai cosa, se tutti lo fanno, lascia che lo facciano legalmente". Quindi, ora in HTML5 puoi avere <meta> o <meta /> .

Per quanto riguarda il tipo da scegliere durante la scrittura del codice. Se stai emettendo XHTML, devi chiudere automaticamente il tag, senza fare domande. Altrimenti, hai le opzioni:

Argomenti contro l'auto-chiusura:

  • Oltre migliaia di visualizzazioni di pagina, lo spazio aggiuntivo e la barra si sommano. Google fa alcune cose odiose per rendere l'HTML leggibile che salva i byte - per un po 'hanno omesso </body> e </head> tag di chiusura.

Argomenti per chiusura automatica:

  • Chiudere i tag e avvicinare il tuo codice HTML all'XML, rende più semplice per i parser basati su XML leggere i tuoi contenuti, il che potrebbe rendere più facile la ricerca o lo scraping dei contenuti se si utilizzano tecnologie basate su XML come XPath.

La scelta dipende solo da te, ma indipendentemente dall'approccio scelto, la coerenza è la chiave .

    
risposta data 18.09.2013 - 02:17
fonte
3

La nozione di tag a chiusura automatica come questa:

<meta charset="utf-8" />

È un'idea avanzata da XHTML . XHTML è stato uno sforzo da parte di alcuni al W3C per creare un dialetto compatibile con XML dell'HTML. Era basato su HTML 4.0, ma è stato modificato solo per compatibilità XML. XHTML ha dimostrato di avere una serie di problemi e molti agenti utente (browser) non sono stati in grado di gestire i documenti XHTML forniti in base alle specifiche dello standard e hanno richiesto diversi "hack" solo per impedire ai browser di passare alla "modalità quirk".

HTML5 non ha alcuna relazione con XML. Anch'esso si basa su HTML 4.0, ma ha smaltito il boondoggle XML che è uscito dallo sforzo XHTML.

I tag a chiusura automatica in HTML5 sono validi, ma non necessari.

    
risposta data 17.09.2013 - 23:14
fonte

Leggi altre domande sui tag