Problema Doctype, qual'è quello giusto?

posted on Thursday, May 04, 2006 11:33 PM

Problema Doctype, qual'è quello giusto?
Questo problema mi tocca particolarmente, perchè Dnn purtroppo usa una dichiarazione non corretta, e nonostante ci sia la possibilità di inserire quella giusta, non è garantito che l'amministrazione poi funzioni correttamente.

Ma che cos'è il Doctype?
Document Type Definition, o semplicemente DTD.

Perchè usarla?
Perchè definisce quale versione di (X)HTML il tuo documento sta usando (oltre che  poter utilizzare il validatore per controllare la sintassi del documento).

Se non ci fosse, o fosse incompleta?
Per la maggior parte dei browsers, la dichiarazione del doctype da la possibilità di procedere con il rendering del documento in modalità standard e compatibile con la versione del documento che abbiamo scelto di usare.
Di conseguenza anche il comportamento delle proprietà attribuite al mark up da un foglio di stile, ne verrà inevitabilmente influenzato.

In altro modo, cioè senza doctype, o con uno scritto in modo non corretto, il motore di rendering è costretto ad "inventare" il modo di interpretare la pagina (quirksmode), dando luogo a quegli errori dovuti alla confusione sulla versione, errori che appunto si riflettono anche nell'interpretazione dei fogli di stile.
Ad esempio, con il doctype non corretto, IE 6,  "regredisce" ad un versione precedente, la 5 o la 4 addirittura, ereditando tutti quegli errori che pensavano di aver definitivamente chiuso nel cassetto.....

Questo, per esempio è un doctype non completo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

mentre dovrebbe essere così:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">

In questo articolo che affronta questo tema, vi sono elencati tutti i doctype disponibili: http://www.alistapart.com/stories/doctype/
mentre questa è la pagina di riferimento "ufficiale": http://www.w3.org/QA/2002/04/valid-dtd-list.html

Comments

No comments posted yet.



Post Comment













Please add 4 and 4 and type the answer here: