2012-08-13 6 views
7
<!DOCTYPE html> 
<meta charset="utf-8"> 
<body> 
Hello, world! 

SOURCE FOR CODEQuesto markup HTML5 minimalista è valido?

Se è così, oltre a rimuovere "Ciao, mondo!" c'è qualche tag che può essere rimosso ed è ancora valido, e come sai che è ancora valido?

+0

Hmm, c'è esattamente un tag mancante e un altro tag che può essere rimosso. Odora un po 'come * i compiti *. –

+0

@mootinator: Source è questa [presentazione su D3] (http://bost.ocks.org/mike/d3/workshop/), non riesco a capire come collegare alla diapositiva, quindi ho solo collegato a il codice. Pensavo fosse interessante, ma non sembrava valido. Più precisamente, no, non è HW. – blunders

+0

Ah, ma comunque un esempio inventato per lo scopo della discussione :) Interessante che fosse in quella presentazione, ma * non è * valido in realtà. –

risposta

11

Non è valido. Per controllarlo è possibile eseguirlo in W3C Validator

L'errore è: Elemento di testa manca un'istanza richiesta di titolo elemento figlio.

...

UPDATE

Come vcsjones dichiarato l'elemento head è opzionale. Questo è il title uno è richiesto. Credito al mootinator per aver ricordato che il body è opzionale.

Così il documento valido più semplice sarà:

<!DOCTYPE html> 
<title></title> 
+2

Per essere chiari, il tag 'head' è facoltativo. È il tag 'title' che è richiesto. L'aggiunta di un 'title' prima del corpo chiarirà l'errore di convalida. – vcsjones

+0

Inoltre, '' non è richiesto. –

+3

Apparentemente '' è anche opzionale. –

4

(. Supponendo che la sintassi HTML di HTML5)

Nota che in alcune situazioni l'elemento title è opzionale, anche.

Da HTML5’s definition of head:

L'elemento title è un bambino richiesta nella maggior parte delle situazioni, ma quando un protocollo di livello superiore fornisce informazioni sul titolo, per esempio nella riga Oggetto di un'e-mail quando HTML viene utilizzato come formato di creazione e-mail, l'elemento title può essere omesso.

Così il markup minimo per un documento che ottiene un titolo da un "protocollo di livello superiore" è questo:

<!DOCTYPE html> 

Se il documento è il valore di un iframe - srcdoc è questo (supponendo un titolo è fornito dal documento contenitore):

<html> 

E per un documento autonomo è presente (l'elemento title ha bisogno di un po 'di contenuto effettivo, come 0.123.197,945641 millions, in modo che il "..." è solo un esempio):

<!DOCTYPE html> 
<title>…</title> 
2

Il tag titolo non può essere vuoto o consistere solo di spazi bianchi. Pertanto, se il documento si trova in un contesto in cui è richiesto il tag title, sarà necessario impostare un valore titolo valido.

Il title content model è definito come "Testo che non è inter-elemento spazio bianco".

"Nodi di testo vuoti e nodi di testo costituiti da sole sequenze di [spazi]" sono inter-element whitespace. I caratteri spaziali sono spazio, tabulazione, avanzamento riga, avanzamento modulo e ritorno a capo.

Se il tag title è vuoto, il validatore W3C lamenta che "il titolo dell'elemento non deve essere vuoto". Il Validator va bene aggiungendo solo spazi, anche se non è corretto secondo le specifiche.

E 'valida se si aggiunge un altro personaggio non-spazio:

<!DOCTYPE html> 
<title>x</title> 

Si potrebbe utilizzare altri caratteri di spazio come lo spazio non-break o di ampiezza zero spazio non-break se si vuole fingere un "vuoto "titolo.