In HTML, il DOCTYPE
deve venire prima, seguito da un singolo <html>
elemento, che deve contenere un <head>
elemento contenente un <title>
elemento, seguito da un <body>
elemento. Vedi la descrizione della struttura globale di un documento HTML in HTML 4.01 e la bozza HTML5 ; i requisiti effettivi sono per lo più gli stessi tranne il DOCTYPE
, ma sono descritti in modo diverso.
I tag reali ( <html>
, </html>
, <head>
, ecc) sono opzionali; gli elementi verranno creati automaticamente se i tag non esistono. <title>
è l'unico tag obbligatorio in HTML. Il documento HTML 4.01 valido più breve (almeno, che potrei generare) è (ha bisogno di un <p>
perché ci deve essere qualcosa <body>
per essere valido):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><title></title><p>
E il documento HTML5 valido più breve:
<!DOCTYPE html><title></title>
Notare che in XHTML, tutti i tag devono essere specificati esplicitamente; nessun elemento verrà inserito implicitamente.
I browser eseguono lo sniffing del tipo di contenuto in alcune circostanze per determinare il tipo di una risorsa che non è stata specificata utilizzando Content-Type
un'intestazione HTTP e anche lo sniffing della codifica dei caratteri se l' Content-Type
intestazione non è stata fornita o non include un charset
(in genere dovresti provare per includere queste intestazioni e assicurarsi che siano corrette, ma in alcune circostanze non è possibile, ad esempio i file locali non trasferiti tramite HTTP). Tuttavia, per questi scopi, annusano solo un numero limitato di byte all'inizio del documento, quindi tutto ciò che intende influenzare lo sniffing del contenuto o lo sniffing della codifica dei caratteri dovrebbe essere vicino all'inizio del documento.
Per questo motivo, HTML5 specifica che qualsiasi meta
tag utilizzato per specificare il set di caratteri ( <meta http-equiv="Content-type" content="text/html; charset=...">
o semplicemente <meta charset=...>
) deve essere entro i primi 1024 byte del file per avere effetto. Quindi, se hai intenzione di includere informazioni sulla codifica dei caratteri nel tuo documento, dovresti inserire il tag all'inizio del file, possibilmente anche prima <title>
dell'elemento. Ma ricorda che questo tag non è necessario se specifichi correttamente Content-type
un'intestazione.
In CSS, le dichiarazioni di stile successive hanno la precedenza su quelle precedenti , a parità di tutte le altre. Quindi, in genere dovresti inserire i fogli di stile più generici che possono essere sovrascritti in precedenza e i fogli di stile più specifici in seguito.
Per motivi di prestazioni, può essere una buona idea mettere gli script in fondo alla pagina, subito prima del </body>
, perché il caricamento degli script blocca il rendering della pagina.
Ovviamente, i <script>
tag dovrebbero essere ordinati in modo che gli script che dipendono da ciascun ordine abbiano le dipendenze caricate per primi.
Nel complesso, a parte i vincoli che ho già specificato, l'ordine dei tag all'interno <head>
non dovrebbe importare troppo, a parte la leggibilità. Tendo a vedere il <title>
verso l'alto e mettere gli altri <meta>
tag in una sorta di ordine logico.
La maggior parte delle volte, l'ordine in cui inserire le cose nel corpo di un documento HTML dovrebbe essere l'ordine in cui dovrebbero essere visualizzate o l'ordine in cui dovrebbero essere visualizzate. Puoi usare i CSS per riorganizzare le cose, ma gli screen reader generalmente leggono le cose in ordine di origine, gli indici di ricerca estraggono le cose in ordine di origine e così via.