{"id":164033,"date":"2024-09-01T09:00:00","date_gmt":"2024-09-01T07:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/tabelle-html-creare-stilizzare\/"},"modified":"2024-09-01T09:00:00","modified_gmt":"2024-09-01T07:00:00","slug":"tabelle-html-creare-stilizzare","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/fr\/tabelle-html-creare-stilizzare\/","title":{"rendered":"Tabelle HTML: Come Creare e Stilizzare Tabelle per il Web"},"content":{"rendered":"<p style=\"text-align: justify;\">Le <strong>tabelle HTML<\/strong> sono uno strumento essenziale per presentare <strong>dati tabulari<\/strong> in modo organizzato e leggibile. Dalle tabelle di confronto prodotti alle classifiche, dai listini prezzi ai calendari, le tabelle permettono di visualizzare informazioni strutturate in righe e colonne. In questo articolo vedremo come creare tabelle semanticamente corrette, accessibili e responsive.<\/p>\n<h2>Struttura Base di una Tabella HTML<\/h2>\n<p style=\"text-align: justify;\">Una tabella HTML si costruisce con una serie di tag annidati che definiscono la struttura a righe e colonne. L&#8217;elemento contenitore \u00e8 <code>&lt;table&gt;<\/code>, che racchiude l&#8217;intera tabella. All&#8217;interno, le <strong>righe<\/strong> sono definite dal tag <code>&lt;tr&gt;<\/code> (table row), e le <strong>celle<\/strong> possono essere di due tipi: <code>&lt;td&gt;<\/code> (table data) per le celle di dati e <code>&lt;th&gt;<\/code> (table header) per le celle di intestazione.<\/p>\n<p style=\"text-align: justify;\">Ecco la struttura base di una tabella semplice:<\/p>\n<pre><code>&lt;table&gt;\n  &lt;tr&gt;\n    &lt;th&gt;Nome&lt;\/th&gt;\n    &lt;th&gt;Et&agrave;&lt;\/th&gt;\n    &lt;th&gt;Citt&agrave;&lt;\/th&gt;\n  &lt;\/tr&gt;\n  &lt;tr&gt;\n    &lt;td&gt;Mario Rossi&lt;\/td&gt;\n    &lt;td&gt;35&lt;\/td&gt;\n    &lt;td&gt;Roma&lt;\/td&gt;\n  &lt;\/tr&gt;\n  &lt;tr&gt;\n    &lt;td&gt;Anna Bianchi&lt;\/td&gt;\n    &lt;td&gt;28&lt;\/td&gt;\n    &lt;td&gt;Milano&lt;\/td&gt;\n  &lt;\/tr&gt;\n&lt;\/table&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">Il tag <code>&lt;th&gt;<\/code> non solo visualizza il testo in grassetto e centrato per impostazione predefinita, ma ha anche un <strong>significato semantico<\/strong>: indica che la cella \u00e8 un&#8217;intestazione, fornendo contesto alle celle di dati associate. Questa distinzione \u00e8 fondamentale per l&#8217;accessibilit\u00e0, come vedremo pi\u00f9 avanti.<\/p>\n<h2>Sezioni della Tabella: thead, tbody e tfoot<\/h2>\n<p style=\"text-align: justify;\">Per tabelle ben strutturate, HTML offre tre tag che permettono di suddividere la tabella in <strong>sezioni logiche<\/strong>: <code>&lt;thead&gt;<\/code>, <code>&lt;tbody&gt;<\/code> et <code>&lt;tfoot&gt;<\/code>.<\/p>\n<p style=\"text-align: justify;\">Il tag <code>&lt;thead&gt;<\/code> (table head) racchiude le righe di <strong>intestazione<\/strong> della tabella, tipicamente contenenti le celle <code>&lt;th&gt;<\/code> con i nomi delle colonne. Il tag <code>&lt;tbody&gt;<\/code> (table body) contiene le righe con i <strong>dati<\/strong> effettivi. Il tag <code>&lt;tfoot&gt;<\/code> (table footer) \u00e8 dedicato alle righe di <strong>pi\u00e8 di pagina<\/strong>, come totali, medie o note riassuntive.<\/p>\n<p style=\"text-align: justify;\">Questa suddivisione non \u00e8 solo semantica ma ha anche vantaggi pratici. I browser possono utilizzare queste sezioni per implementare lo scorrimento del corpo della tabella mantenendo intestazione e pi\u00e8 di pagina fissi. Inoltre, quando una tabella viene stampata su pi\u00f9 pagine, <code>&lt;thead&gt;<\/code> et <code>&lt;tfoot&gt;<\/code> vengono ripetuti su ogni pagina, migliorando la leggibilit\u00e0 del documento stampato.<\/p>\n<p style=\"text-align: justify;\">Nel codice HTML, l&#8217;ordine consigliato \u00e8 <code>&lt;thead&gt;<\/code>, <code>&lt;tbody&gt;<\/code>, <code>&lt;tfoot&gt;<\/code>, anche se il browser renderizzer\u00e0 correttamente il footer in fondo indipendentemente dalla posizione nel markup.<\/p>\n<h2>Caption, Colspan e Rowspan<\/h2>\n<p style=\"text-align: justify;\">Il tag <code>&lt;caption&gt;<\/code> aggiunge un <strong>titolo descrittivo<\/strong> alla tabella. Deve essere il primo elemento figlio del tag <code>&lt;table&gt;<\/code> e fornisce contesto sia visivo che semantico. Gli screen reader annunciano il caption prima di leggere il contenuto della tabella, aiutando l&#8217;utente a comprendere il tipo di dati presentati.<\/p>\n<p style=\"text-align: justify;\">Gli attributi <code>colspan<\/code> et <code>rowspan<\/code> permettono a una cella di <strong>estendersi<\/strong> rispettivamente su pi\u00f9 colonne o pi\u00f9 righe. Ad esempio, <code>&lt;td colspan=&quot;3&quot;&gt;<\/code> crea una cella che occupa lo spazio di tre colonne, utile per intestazioni che raggruppano pi\u00f9 colonne di dati. <code>&lt;td rowspan=&quot;2&quot;&gt;<\/code> crea una cella che si estende su due righe, utilizzata spesso quando un valore \u00e8 condiviso tra pi\u00f9 righe adiacenti.<\/p>\n<p style=\"text-align: justify;\">L&#8217;uso di colspan e rowspan richiede attenzione nel conteggio delle celle per ogni riga. Se una cella si estende su 3 colonne, le altre righe nella stessa posizione devono avere 3 celle separate per mantenere l&#8217;allineamento. Errori nel conteggio possono causare tabelle distorte e difficili da correggere.<\/p>\n<h2>Stilizzare le Tabelle con CSS<\/h2>\n<p style=\"text-align: justify;\">Le tabelle HTML senza stilizzazione CSS appaiono piuttosto austere. Fortunatamente, il CSS offre numerose propriet\u00e0 per rendere le tabelle <strong>visivamente accattivanti<\/strong> e facili da leggere.<\/p>\n<p style=\"text-align: justify;\">La propriet\u00e0 <code>border-collapse<\/code> \u00e8 fondamentale: con il valore <code>collapse<\/code> i bordi delle celle adiacenti vengono fusi in un unico bordo, creando un aspetto pulito e professionale. Senza questa propriet\u00e0, ogni cella ha i propri bordi separati con uno spazio visibile tra di essi.<\/p>\n<p style=\"text-align: justify;\">Per migliorare la leggibilit\u00e0, \u00e8 comune applicare <strong>colori di sfondo alternati<\/strong> alle righe (zebrastriping) usando il selettore <code>tr:nth-child(even)<\/code> o <code>tr:nth-child(odd)<\/code>. L&#8217;effetto hover sulle righe (<code>tr:hover<\/code>) aiuta l&#8217;utente a seguire visivamente i dati attraverso le colonne. Il padding nelle celle <code>td<\/code> et <code>th<\/code> crea lo spazio necessario tra il contenuto e i bordi della cella.<\/p>\n<p style=\"text-align: justify;\">Per l&#8217;intestazione, \u00e8 buona pratica differenziarla con un colore di sfondo pi\u00f9 scuro e testo bianco o chiaro. Questo crea una separazione visiva chiara tra le etichette e i dati.<\/p>\n<h2>Tabelle Responsive<\/h2>\n<p style=\"text-align: justify;\">Le tabelle rappresentano una sfida particolare per il <strong>design responsive<\/strong>. Una tabella con molte colonne pu\u00f2 diventare illeggibile su schermi piccoli come quelli degli smartphone. Esistono diverse strategie per gestire questo problema.<\/p>\n<p style=\"text-align: justify;\">L&#8217;approccio pi\u00f9 semplice \u00e8 avvolgere la tabella in un <strong>contenitore scrollabile<\/strong>: <code>&lt;div style=&quot;overflow-x: auto;&quot;&gt;&lt;table&gt;...&lt;\/table&gt;&lt;\/div&gt;<\/code>. Questo permette all&#8217;utente di scorrere orizzontalmente la tabella senza che il layout della pagina si rompa.<\/p>\n<p style=\"text-align: justify;\">Un approccio pi\u00f9 sofisticato prevede la <strong>trasformazione della tabella<\/strong> su schermi piccoli tramite media query CSS. Ogni riga pu\u00f2 essere convertita in un &#8220;card&#8221; indipendente, con le etichette delle colonne mostrate inline accanto ai dati tramite il pseudo-elemento <code>::before<\/code> e l&#8217;attributo <code>data-label<\/code>.<\/p>\n<p style=\"text-align: justify;\">Un&#8217;altra opzione \u00e8 <strong>nascondere le colonne<\/strong> meno importanti su mobile, mantenendo solo le informazioni essenziali e offrendo un link per visualizzare la tabella completa. La scelta della strategia dipende dal tipo di dati e dalle esigenze specifiche del progetto.<\/p>\n<h2>Accessibilit\u00e0 delle Tabelle e Quando Non Usarle<\/h2>\n<p style=\"text-align: justify;\">Per rendere le tabelle accessibili, \u00e8 essenziale utilizzare correttamente l&#8217;attributo <code>scope<\/code> nelle celle <code>&lt;th&gt;<\/code>. Il valore <code>scope=\"col\"<\/code> indica che l&#8217;intestazione si riferisce a un&#8217;intera colonna, mentre <code>scope=\"row\"<\/code> indica che si riferisce a un&#8217;intera riga. Per tabelle complesse con intestazioni multiple, l&#8217;attributo <code>headers<\/code> nelle celle <code>&lt;td&gt;<\/code> permette di specificare esplicitamente quali intestazioni <code>&lt;th&gt;<\/code> si applicano a ogni cella, usando gli id delle intestazioni.<\/p>\n<p style=\"text-align: justify;\">Un punto cruciale: le tabelle HTML devono essere usate <strong>esclusivamente per dati tabulari<\/strong>. Negli anni &#8217;90 e primi 2000, le tabelle venivano ampiamente utilizzate per il layout delle pagine web, una pratica oggi fortemente sconsigliata. Il layout deve essere gestito con CSS (Flexbox e Grid). Usare tabelle per il layout crea problemi di accessibilit\u00e0, rende il codice pi\u00f9 complesso e ostacola il design responsive.<\/p>\n<p style=\"text-align: justify;\">Per scegliere quando usare una tabella, chiediti: &#8220;Questi dati hanno una relazione riga-colonna significativa?&#8221; Se la risposta \u00e8 s\u00ec, la tabella \u00e8 appropriata. Se stai solo cercando di allineare elementi nella pagina, usa CSS Grid o Flexbox.<\/p>\n<p style=\"text-align: justify;\">Per una panoramica completa degli elementi HTML e di come strutturare correttamente le pagine web, ti consigliamo di leggere il nostro articolo sui <a href=\"https:\/\/gtechgroup.it\/blog\/fr\/tag-html-essenziali-sviluppatore\/\">tag HTML essenziali<\/a>.<\/p>\n<p style=\"text-align: justify;\">Hai bisogno di aiuto con la <strong>creazione di tabelle<\/strong> per il tuo sito web? <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>","protected":false},"excerpt":{"rendered":"<p>Le tabelle HTML sono uno strumento essenziale per presentare dati tabulari in modo organizzato e leggibile. Dalle tabelle di confronto prodotti alle classifiche, dai listini&hellip;<\/p>","protected":false},"author":2,"featured_media":164213,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Tabelle HTML: Come Creare e Stilizzare Tabelle per il Web","_seopress_titles_desc":"Guida completa alle tabelle HTML: tag table, thead, tbody, tr, td, th. Scopri come creare tabelle accessibili e responsive per il web.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"1246","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"tabelle HTML, tag table, tr HTML, td HTML, tabella web","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[{"_seopress_pro_rich_snippets_type":"custom","_seopress_pro_rich_snippets_custom":"<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"HowTo\",\"name\":\"Tabelle HTML: Come Creare e Stilizzare Tabelle per il Web\",\"description\":\"Le tabelle HTML sono uno strumento essenziale per presentare dati tabulari in modo organizzato e leggibile. Dalle tabelle di confronto prodotti alle classifiche, dai listini\u2026\",\"step\":[{\"@type\":\"HowToStep\",\"position\":1,\"name\":\"Struttura Base di una Tabella HTML\",\"text\":\"Una tabella HTML si costruisce con una serie di tag annidati che definiscono la struttura a righe e colonne. L'elemento contenitore \u00e8 , che racchiude l'intera tabella. All'interno, le righe sono definite dal tag  (table row), e le celle possono essere di due tipi:  (table data) per le celle di dati e  (table header) per le celle di intestazione.\"},{\"@type\":\"HowToStep\",\"position\":2,\"name\":\"Sezioni della Tabella: thead, tbody e tfoot\",\"text\":\"Per tabelle ben strutturate, HTML offre tre tag che permettono di suddividere la tabella in sezioni logiche: ,  e .\"},{\"@type\":\"HowToStep\",\"position\":3,\"name\":\"Caption, Colspan e Rowspan\",\"text\":\"Il tag  aggiunge un titolo descrittivo alla tabella. Deve essere il primo elemento figlio del tag  e fornisce contesto sia visivo che semantico. Gli screen reader annunciano il caption prima di leggere il contenuto della tabella, aiutando l'utente a comprendere il tipo di dati presentati.\"},{\"@type\":\"HowToStep\",\"position\":4,\"name\":\"Stilizzare le Tabelle con CSS\",\"text\":\"Le tabelle HTML senza stilizzazione CSS appaiono piuttosto austere. Fortunatamente, il CSS offre numerose propriet\u00e0 per rendere le tabelle visivamente accattivanti e facili da leggere.\"},{\"@type\":\"HowToStep\",\"position\":5,\"name\":\"Tabelle Responsive\",\"text\":\"Le tabelle rappresentano una sfida particolare per il design responsive. Una tabella con molte colonne pu\u00f2 diventare illeggibile su schermi piccoli come quelli degli smartphone. Esistono diverse strategie per gestire questo problema.\"},{\"@type\":\"HowToStep\",\"position\":6,\"name\":\"Accessibilit\u00e0 delle Tabelle e Quando Non Usarle\",\"text\":\"Per rendere le tabelle accessibili, \u00e8 essenziale utilizzare correttamente l'attributo scope nelle celle . Il valore scope=\"col\" indica che l'intestazione si riferisce a un'intera colonna, mentre scope=\"row\" indica che si riferisce a un'intera riga. Per tabelle complesse con intestazioni multiple, l'attributo headers nelle celle  permette di specificare esplicitamente quali intestazioni  si applicano a ogni cella, usando gli id delle intestazioni.\"}],\"image\":\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2024\/09\/html-10-tabelle.jpg\"}<\/script>"}],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[1246],"tags":[787,1108],"class_list":["post-164033","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html","tag-sviluppo-web","tag-web-design"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/posts\/164033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/comments?post=164033"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/posts\/164033\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/media\/164213"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/media?parent=164033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/categories?post=164033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/fr\/wp-json\/wp\/v2\/tags?post=164033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}