Quote:
Originariamente inviato da Matrixbob
Posso trovare ad esempio:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
oppure
<?xml version="1.0" encoding="iso-8859-1"?>
oppure
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
|
La differenza non è molto evidente perché i browser attualmente quasi la ignorano, nel senso che riescono a "renderizzare" la pagina anche in loro assenza.
Te le descrivo una ad una:
<?xml version="1.0" encoding="iso-8859-1"?>
Serve a dire al browser che il resto del documento utilizzerà una notazione XML versione 1.0. Per ora è praticamente l'unica e questa stessa dichiarazione è formalmente necessaria, ma di fatto non necessaria, nel senso che tutto funziona anche se non c'è. Anzi i vecchi browser hanno problemi.
<!DOCTYPE ...>
Questa dichiarazione serve a stabilire il DOCUMENT TEMPLATE DOCUMENT a cui si conforma il resto del documento. Il DTD in pratica contiene la descrizione sintattica del linguaggio HTML utilizzato. In teoria il browser dovrebbe renderizzare diversamente uno stesso codice HTML a seconda del DTD. Il DTD serve anche ai validatori per sapere rispetto a cosa validare.
xmlns ...
Significa XML NameSpace, definisce in pratica la "libreria" di marcatori a cui si riferisce. Anche in questo caso si tratta di qualcosa di formalmente necessario. La gestione dei NAMESPACE in XML/XHTML permette per esempio di utilizzare anche linguaggi diversi all'interno del solito documento. Per esempio potresti "mischiare" XHTML e SVG nella stessa pagina.
Nell'HEAD metti la dichiarazione più estesa. Quando hai una versione finale della pagina, passala al validatore del W3C e correggi le inesattezze.