{"id":164026,"date":"2024-05-19T09:00:00","date_gmt":"2024-05-19T07:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/struttura-pagina-html-doctype-head-body\/"},"modified":"2024-05-19T09:00:00","modified_gmt":"2024-05-19T07:00:00","slug":"struttura-pagina-html-doctype-head-body","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/struttura-pagina-html-doctype-head-body\/","title":{"rendered":"Struttura di una Pagina HTML: DOCTYPE, Head e Body Spiegati"},"content":{"rendered":"<p style=\"text-align: justify;\">Ogni pagina web che visiti, indipendentemente dalla sua complessit\u00e0, si basa su una <strong>struttura fondamentale<\/strong> composta da pochi elementi essenziali. Comprendere questa struttura \u00e8 il secondo passo fondamentale dopo aver capito <a href=\"https:\/\/gtechgroup.it\/blog\/introduzione-html-cose-come-funziona\/\">cos&#8217;\u00e8 l&#8217;HTML<\/a>. In questo articolo analizzeremo nel dettaglio ogni componente di una pagina HTML valida: dalla dichiarazione <strong>DOCTYPE<\/strong> alle sezioni <strong>head<\/strong> e <strong>body<\/strong>.<\/p>\n<h2>La Dichiarazione DOCTYPE: Il Punto di Partenza<\/h2>\n<p style=\"text-align: justify;\">La prima riga di ogni documento HTML moderno deve essere la <strong>dichiarazione DOCTYPE<\/strong>. Si scrive come <code>&lt;!DOCTYPE html&gt;<\/code> e ha una funzione specifica: comunica al browser quale versione di HTML si sta utilizzando e come deve interpretare il documento. Senza questa dichiarazione, il browser potrebbe entrare in modalit\u00e0 <strong>quirks mode<\/strong>, un comportamento di compatibilit\u00e0 retrograda che pu\u00f2 causare problemi nella visualizzazione della pagina.<\/p>\n<p style=\"text-align: justify;\">La dichiarazione <code>&lt;!DOCTYPE html&gt;<\/code> \u00e8 quella utilizzata per <strong>HTML5<\/strong> ed \u00e8 notevolmente pi\u00f9 semplice rispetto alle versioni precedenti. In HTML 4.01, ad esempio, era necessario specificare anche il DTD (Document Type Definition) con un URL lungo e complesso. La semplicit\u00e0 della dichiarazione attuale \u00e8 uno dei tanti miglioramenti introdotti con HTML5.<\/p>\n<p style=\"text-align: justify;\">\u00c8 importante notare che il DOCTYPE <strong>non \u00e8 un tag HTML<\/strong> vero e proprio: \u00e8 un&#8217;istruzione per il browser. Non ha un tag di chiusura, non pu\u00f2 contenere attributi aggiuntivi e non fa parte del DOM (Document Object Model) della pagina. Deve sempre essere posizionata come primissima riga del documento, prima di qualsiasi altro elemento, compreso il tag <code>&lt;html&gt;<\/code>.<\/p>\n<h2>L&#8217;Elemento Root: Il Tag &lt;html&gt;<\/h2>\n<p style=\"text-align: justify;\">Subito dopo il DOCTYPE, troviamo il tag <code>&lt;html&gt;<\/code>, noto come <strong>elemento root<\/strong> (radice) del documento. Questo tag racchiude l&#8217;intero contenuto della pagina web e rappresenta il nodo principale dell&#8217;albero DOM. Tutto ci\u00f2 che compone la pagina \u2014 metadati, contenuti, script e stili \u2014 deve essere contenuto all&#8217;interno dell&#8217;elemento <code>&lt;html&gt;<\/code>.<\/p>\n<p style=\"text-align: justify;\">L&#8217;attributo pi\u00f9 importante dell&#8217;elemento root \u00e8 <code>lang<\/code>, che specifica la <strong>lingua principale<\/strong> del documento. Ad esempio, <code>&lt;html lang=\"it\"&gt;<\/code> indica che il contenuto \u00e8 in italiano. Questo attributo \u00e8 fondamentale per l&#8217;<strong>accessibilit\u00e0<\/strong> (gli screen reader lo utilizzano per selezionare la voce corretta), per il <strong>SEO<\/strong> (i motori di ricerca lo usano per la classificazione linguistica) e per le funzionalit\u00e0 del browser come la traduzione automatica.<\/p>\n<p style=\"text-align: justify;\">L&#8217;elemento <code>&lt;html&gt;<\/code> contiene esattamente due elementi figlio diretti: <code>&lt;head&gt;<\/code> e <code>&lt;body&gt;<\/code>. Questa struttura \u00e8 obbligatoria e invariabile in ogni documento HTML valido. Nessun altro elemento dovrebbe essere inserito come figlio diretto del tag <code>&lt;html&gt;<\/code> al di fuori di questi due.<\/p>\n<h2>La Sezione Head: Il Cervello della Pagina<\/h2>\n<p style=\"text-align: justify;\">La sezione <code>&lt;head&gt;<\/code> contiene tutti i <strong>metadati<\/strong> del documento, ovvero informazioni che non vengono visualizzate direttamente nella pagina ma che sono essenziali per il suo corretto funzionamento. Per un approfondimento completo su questa sezione, puoi consultare il nostro articolo dedicato a <a href=\"https:\/\/gtechgroup.it\/blog\/cose-lhtml-head-una-guida-essenziale\/\">cos&#8217;\u00e8 l&#8217;HTML Head<\/a>.<\/p>\n<p style=\"text-align: justify;\">Gli elementi principali che si inseriscono nella sezione head includono:<\/p>\n<ul>\n<li><strong><code>&lt;title&gt;<\/code><\/strong> \u2014 Il titolo della pagina, visualizzato nella scheda del browser e nei risultati dei motori di ricerca. \u00c8 l&#8217;unico elemento obbligatorio all&#8217;interno del <code>&lt;head&gt;<\/code>.<\/li>\n<li><strong><code>&lt;meta charset=\"UTF-8\"&gt;<\/code><\/strong> \u2014 Specifica la codifica dei caratteri, essenziale per visualizzare correttamente lettere accentate, simboli e caratteri speciali.<\/li>\n<li><strong><code>&lt;meta name=\"viewport\"&gt;<\/code><\/strong> \u2014 Configura il viewport per i dispositivi mobili, fondamentale per il <strong>responsive design<\/strong>.<\/li>\n<li><strong><code>&lt;meta name=\"description\"&gt;<\/code><\/strong> \u2014 La meta description utilizzata dai motori di ricerca come anteprima nei risultati.<\/li>\n<li><strong><code>&lt;link rel=\"stylesheet\"&gt;<\/code><\/strong> \u2014 Collega fogli di stile CSS esterni al documento.<\/li>\n<li><strong><code>&lt;script&gt;<\/code><\/strong> \u2014 Include o collega file JavaScript (anche se spesso \u00e8 preferibile posizionarli prima della chiusura del body).<\/li>\n<li><strong><code>&lt;link rel=\"icon\"&gt;<\/code><\/strong> \u2014 Specifica la favicon del sito, l&#8217;icona visualizzata nella scheda del browser.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">L&#8217;ordine degli elementi nel <code>&lt;head&gt;<\/code> ha una certa importanza pratica. Il <code>&lt;meta charset&gt;<\/code> dovrebbe essere il primo elemento dopo l&#8217;apertura del <code>&lt;head&gt;<\/code>, poich\u00e9 il browser deve conoscere la codifica prima di interpretare qualsiasi altro contenuto. Il <code>&lt;title&gt;<\/code> dovrebbe seguire immediatamente dopo, e il meta viewport subito dopo.<\/p>\n<h2>La Sezione Body: Il Contenuto Visibile<\/h2>\n<p style=\"text-align: justify;\">La sezione <code>&lt;body&gt;<\/code> \u00e8 dove risiede tutto il <strong>contenuto visibile<\/strong> della pagina web. Tutto ci\u00f2 che l&#8217;utente vede e con cui interagisce \u2014 testo, immagini, video, moduli, menu di navigazione \u2014 \u00e8 contenuto all&#8217;interno del tag <code>&lt;body&gt;<\/code>. Mentre il <code>&lt;head&gt;<\/code> \u00e8 il cervello della pagina, il <code>&lt;body&gt;<\/code> ne \u00e8 il corpo.<\/p>\n<p style=\"text-align: justify;\">All&#8217;interno del body si utilizzano i tag HTML per strutturare il contenuto in modo logico e semantico. I tag pi\u00f9 comuni includono i <strong>tag di intestazione<\/strong> da <code>&lt;h1&gt;<\/code> a <code>&lt;h6&gt;<\/code> per i titoli, il tag <code>&lt;p&gt;<\/code> per i paragrafi, <code>&lt;a&gt;<\/code> per i link, <code>&lt;img&gt;<\/code> per le immagini, e i tag semantici HTML5 come <code>&lt;header&gt;<\/code>, <code>&lt;nav&gt;<\/code>, <code>&lt;main&gt;<\/code>, <code>&lt;section&gt;<\/code>, <code>&lt;article&gt;<\/code> e <code>&lt;footer&gt;<\/code> per definire le diverse aree della pagina.<\/p>\n<p style=\"text-align: justify;\">Una buona pratica \u00e8 organizzare il contenuto del body seguendo una <strong>gerarchia logica<\/strong>. Tipicamente, una pagina web moderna presenta questa struttura all&#8217;interno del body:<\/p>\n<ol>\n<li>Un <code>&lt;header&gt;<\/code> con logo e navigazione principale<\/li>\n<li>Un <code>&lt;main&gt;<\/code> con il contenuto principale della pagina<\/li>\n<li>Eventuali <code>&lt;aside&gt;<\/code> per contenuti secondari (sidebar)<\/li>\n<li>Un <code>&lt;footer&gt;<\/code> con informazioni di contatto, link utili e copyright<\/li>\n<\/ol>\n<p style=\"text-align: justify;\">\u00c8 comune inserire i tag <code>&lt;script&gt;<\/code> appena prima della chiusura del <code>&lt;\/body&gt;<\/code> piuttosto che nel <code>&lt;head&gt;<\/code>. Questa pratica garantisce che il contenuto HTML sia completamente caricato prima dell&#8217;esecuzione degli script, migliorando le <strong>performance percepite<\/strong> della pagina. In alternativa, si pu\u00f2 utilizzare l&#8217;attributo <code>defer<\/code> negli script inseriti nel head per ottenere lo stesso risultato.<\/p>\n<h2>Le Regole di Annidamento (Nesting)<\/h2>\n<p style=\"text-align: justify;\">Un concetto fondamentale nella scrittura di HTML corretto \u00e8 l&#8217;<strong>annidamento<\/strong> (nesting). Gli elementi HTML possono essere inseriti l&#8217;uno dentro l&#8217;altro, creando una struttura gerarchica. Tuttavia, esistono regole precise che governano quali elementi possono contenerne altri.<\/p>\n<p style=\"text-align: justify;\">La regola principale \u00e8 che gli elementi devono essere <strong>chiusi nell&#8217;ordine inverso<\/strong> rispetto a quello di apertura. Ad esempio, questo \u00e8 corretto: <code>&lt;div&gt;&lt;p&gt;Testo&lt;\/p&gt;&lt;\/div&gt;<\/code>. Questo \u00e8 sbagliato: <code>&lt;div&gt;&lt;p&gt;Testo&lt;\/div&gt;&lt;\/p&gt;<\/code>. I tag non devono mai sovrapporsi.<\/p>\n<p style=\"text-align: justify;\">Inoltre, esistono restrizioni sui tipi di elementi che possono essere contenuti in altri. Ad esempio, gli <strong>elementi inline<\/strong> (come <code>&lt;span&gt;<\/code>, <code>&lt;a&gt;<\/code>, <code>&lt;strong&gt;<\/code>) non dovrebbero contenere elementi di blocco (come <code>&lt;div&gt;<\/code>, <code>&lt;p&gt;<\/code>, <code>&lt;h1&gt;<\/code>). Un <code>&lt;p&gt;<\/code> non pu\u00f2 contenere un altro <code>&lt;p&gt;<\/code> o un <code>&lt;div&gt;<\/code>. Un <code>&lt;ul&gt;<\/code> pu\u00f2 contenere solo elementi <code>&lt;li&gt;<\/code> come figli diretti.<\/p>\n<p style=\"text-align: justify;\">Rispettare queste regole \u00e8 importante non solo per la <strong>validit\u00e0<\/strong> del documento, ma anche per evitare comportamenti imprevisti nella visualizzazione e nell&#8217;interazione con CSS e JavaScript.<\/p>\n<h2>Esempio di Pagina HTML Minima Valida<\/h2>\n<p style=\"text-align: justify;\">Ecco la struttura minima di una pagina HTML5 valida, con tutti gli elementi essenziali:<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"it\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;La Mia Prima Pagina&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Benvenuto&lt;\/h1&gt;\n    &lt;p&gt;Questo \u00e8 il mio primo documento HTML.&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">Questa struttura contiene tutti gli elementi necessari: la dichiarazione DOCTYPE, l&#8217;elemento root con attributo <code>lang<\/code>, la sezione head con charset, viewport e title, e la sezione body con del contenuto. Partendo da questo scheletro, puoi costruire qualsiasi pagina web aggiungendo elementi e contenuti secondo le tue necessit\u00e0.<\/p>\n<p style=\"text-align: justify;\">Comprendere questa struttura base \u00e8 il fondamento su cui costruire tutto il resto. Nel prossimo passo del tuo percorso di apprendimento, ti consigliamo di esplorare i <a href=\"https:\/\/gtechgroup.it\/blog\/tag-html-essenziali-sviluppatore\/\">tag HTML essenziali<\/a> che ogni sviluppatore dovrebbe conoscere.<\/p>\n<p style=\"text-align: justify;\">Hai bisogno di aiuto con la <strong>struttura delle tue pagine web<\/strong>? <strong>G Tech Group<\/strong> offre servizi di sviluppo web professionale e consulenza tecnica. Contattaci a <strong>support@gtechgroup.it<\/strong> o via WhatsApp al <strong>0465 84 62 45<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ogni pagina web che visiti, indipendentemente dalla sua complessit\u00e0, si basa su una struttura fondamentale composta da pochi elementi essenziali. Comprendere questa struttura \u00e8 il&hellip;<\/p>\n","protected":false},"author":2,"featured_media":164206,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"1246","_seopress_titles_title":"Struttura di una Pagina HTML: DOCTYPE, Head e Body %%sep%% %%sitename%%","_seopress_titles_desc":"Scopri la struttura fondamentale di una pagina HTML: dichiarazione DOCTYPE, sezione head e body. Guida completa con esempi pratici.","_seopress_robots_index":"","footnotes":""},"categories":[1246],"tags":[787],"class_list":["post-164026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html","tag-sviluppo-web"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/164026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=164026"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/164026\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/164206"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=164026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=164026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=164026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}