Ogni browser che supporta XHTML (Firefox, Opera, Safari, IE9 ) supporta la sintassi a chiusura automatica su ogni elemento .
<div/>
, <script/>
, <br></br>
Tutto dovrebbe funzionare bene. In caso contrario, hai HTML con XTYTML DOCTYPE aggiunto in modo inappropriato.
DOCTYPE non cambia la modalità di interpretazione del documento. Fa solo il tipo MIME .
Decisione del W3C sull'ignorare DOCTYPE :
Il WG HTML ha discusso di questo problema: l'intenzione era quella di consentire ai vecchi browser (solo HTML) di accettare documenti XHTML 1.0 seguendo le linee guida e servendoli come text / html. Pertanto, i documenti serviti come text / html dovrebbero essere trattati come HTML e non come XHTML.
È una trappola molto comune, perché W3C Validator ignora in gran parte quella regola, ma i browser la seguono religiosamente. Leggi
Informazioni su HTML, XML e XHTML dal blog WebKit:
In effetti, la stragrande maggioranza dei presunti documenti XHTML su Internet è servita come text/html
. Il che significa che non sono affatto XHTML, ma in realtà HTML non valido che si risolve nella gestione degli errori dei parser HTML. Tutti quei "Valid XHTML 1.0!" i collegamenti sul web dicono davvero "HTML 4.01 non valido!".
Per verificare se hai XHTML reale o HTML non valido con DOCTYPE di XHTML, inseriscilo nel tuo documento:
<span style="color:green"><span style="color:red"/>
If it's red, it's HTML. Green is XHTML.
</span>
Convalida, e in XHTML reale funziona perfettamente (vedi: 1 vs 2 ). Se non riesci a credere ai tuoi occhi (o non sai come impostare i tipi MIME), apri la tua pagina tramite proxy XHTML .
Un altro modo per verificare è visualizzare la fonte in Firefox. Evidenzierà le barre in rosso quando non sono valide.
In HTML5 / XHTML5 questo non è cambiato e la distinzione è ancora più chiara, perché non ne hai nemmeno di più DOCTYPE
. Content-Type
è il re.
Per la cronaca, le specifiche XHTML consentono a qualsiasi elemento di chiudersi automaticamente rendendo XHTML un'applicazione XML : [enfasi mia]
I tag di elementi vuoti possono essere utilizzati per qualsiasi elemento che non ha contenuto , indipendentemente dal fatto che sia dichiarato o meno utilizzando la parola chiave EMPTY.
Viene anche mostrato esplicitamente nelle specifiche XHTML :
Gli elementi vuoti devono neanche avere un tag di chiusura o il tag iniziale deve terminare con />
. Ad esempio, <br/>
oppure<hr></hr>