{"id":164040,"date":"2024-12-15T09:00:00","date_gmt":"2024-12-15T08:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/collegare-css-javascript-pagina-html\/"},"modified":"2024-12-15T09:00:00","modified_gmt":"2024-12-15T08:00:00","slug":"collegare-css-javascript-pagina-html","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/collegare-css-javascript-pagina-html\/","title":{"rendered":"Come Collegare CSS e JavaScript a una Pagina HTML"},"content":{"rendered":"<p style=\"text-align: justify;\">Ogni pagina web moderna si basa su tre tecnologie fondamentali: <strong>HTML<\/strong> per la struttura, <strong>CSS<\/strong> per la presentazione visiva e <strong>JavaScript<\/strong> per l&#8217;interattivit\u00e0. Sapere come collegare correttamente i fogli di stile e gli script a un documento HTML \u00e8 una competenza essenziale per qualsiasi sviluppatore web. In questa guida analizzeremo tutti i metodi disponibili, le best practice e le implicazioni sulle performance.<\/p>\n<h2>Il Tag link per i Fogli di Stile CSS Esterni<\/h2>\n<p style=\"text-align: justify;\">Il metodo pi\u00f9 comune e consigliato per includere CSS in una pagina HTML \u00e8 attraverso il tag <code>&lt;link&gt;<\/code>, posizionato all&#8217;interno della sezione <code>&lt;head&gt;<\/code> del documento. Questo tag crea un collegamento tra il documento HTML e un file CSS esterno, permettendo di separare completamente la struttura dalla presentazione.<\/p>\n<p style=\"text-align: justify;\">La sintassi base del tag <code>&lt;link&gt;<\/code> per un foglio di stile \u00e8 la seguente: si utilizza l&#8217;attributo <strong>rel<\/strong> con valore &#8220;stylesheet&#8221; per indicare la relazione tra i documenti, l&#8217;attributo <strong>href<\/strong> per specificare il percorso del file CSS e, opzionalmente, l&#8217;attributo <strong>type<\/strong> con valore &#8220;text\/css&#8221;, anche se in HTML5 questo non \u00e8 pi\u00f9 obbligatorio poich\u00e9 il browser lo assume come predefinito.<\/p>\n<p style=\"text-align: justify;\">I vantaggi dell&#8217;utilizzo di fogli di stile esterni sono molteplici. Innanzitutto, un singolo file CSS pu\u00f2 essere condiviso tra pi\u00f9 pagine, garantendo <strong>coerenza visiva<\/strong> in tutto il sito. Inoltre, il browser memorizza nella cache il file CSS dopo il primo caricamento, riducendo i tempi di caricamento delle pagine successive. Infine, la separazione tra contenuto e presentazione rende il codice pi\u00f9 manutenibile e organizzato.<\/p>\n<p style=\"text-align: justify;\">\u00c8 possibile includere pi\u00f9 fogli di stile nella stessa pagina, e l&#8217;ordine di inclusione \u00e8 importante: le regole definite nei file caricati successivamente hanno priorit\u00e0 su quelle precedenti, a parit\u00e0 di specificit\u00e0. Questo meccanismo, noto come <strong>cascading<\/strong>, \u00e8 alla base del funzionamento dei CSS.<\/p>\n<h2>CSS Incorporato con il Tag style<\/h2>\n<p style=\"text-align: justify;\">Un&#8217;alternativa ai fogli di stile esterni \u00e8 l&#8217;utilizzo del tag <code>&lt;style&gt;<\/code>, che permette di definire regole CSS direttamente all&#8217;interno del documento HTML. Anche questo tag viene posizionato nella sezione <code>&lt;head&gt;<\/code> e contiene le dichiarazioni CSS tra i suoi tag di apertura e chiusura.<\/p>\n<p style=\"text-align: justify;\">Il CSS incorporato \u00e8 utile in situazioni specifiche, come quando si desidera applicare stili <strong>critici<\/strong> che devono essere disponibili immediatamente senza attendere il caricamento di un file esterno. Questa tecnica, nota come <strong>critical CSS<\/strong>, migliora significativamente le metriche di rendering iniziale della pagina, un fattore importante per i Core Web Vitals.<\/p>\n<p style=\"text-align: justify;\">Tuttavia, il CSS incorporato presenta degli svantaggi: non pu\u00f2 essere memorizzato nella cache separatamente dal documento HTML, aumenta le dimensioni della pagina e non pu\u00f2 essere riutilizzato tra pagine diverse. Per questi motivi, \u00e8 generalmente consigliato utilizzarlo solo per il CSS critico above-the-fold e caricare il resto tramite file esterni.<\/p>\n<h2>CSS Inline con l&#8217;Attributo style<\/h2>\n<p style=\"text-align: justify;\">Il terzo metodo per applicare stili CSS \u00e8 l&#8217;utilizzo dell&#8217;attributo <strong>style<\/strong> direttamente sugli elementi HTML. Questo approccio, noto come <strong>CSS inline<\/strong>, ha la massima specificit\u00e0 tra i tre metodi e sovrascrive qualsiasi regola proveniente da fogli di stile esterni o incorporati.<\/p>\n<p style=\"text-align: justify;\">Il CSS inline \u00e8 generalmente sconsigliato per diversi motivi: mescola struttura e presentazione, rende il codice difficile da manutenere, non pu\u00f2 utilizzare pseudo-classi o media query, e non beneficia della cache del browser. Tuttavia, pu\u00f2 essere utile in contesti specifici come le <strong>email HTML<\/strong>, dove il supporto per i fogli di stile esterni \u00e8 limitato, o per sovrascrivere stili in situazioni di emergenza.<\/p>\n<p style=\"text-align: justify;\">In ambito di sviluppo moderno, i framework CSS-in-JS generano CSS inline in modo programmato, ma questo \u00e8 un approccio diverso dall&#8217;inserimento manuale di attributi style nel markup.<\/p>\n<h2>Il Tag script per JavaScript<\/h2>\n<p style=\"text-align: justify;\">Per aggiungere JavaScript a una pagina HTML, si utilizza il tag <code>&lt;script&gt;<\/code>. Come per il CSS, esistono due approcci principali: l&#8217;inclusione di un file esterno tramite l&#8217;attributo <strong>src<\/strong>, oppure l&#8217;inserimento del codice JavaScript direttamente tra i tag di apertura e chiusura.<\/p>\n<p style=\"text-align: justify;\">Quando si utilizza l&#8217;attributo src per collegare un file JavaScript esterno, \u00e8 importante ricordare che il tag <code>&lt;script&gt;<\/code> non \u00e8 un tag auto-chiudente: \u00e8 sempre necessario includere il tag di chiusura <code>&lt;\/script&gt;<\/code>, anche se non contiene codice inline. Omettere il tag di chiusura \u00e8 un errore comune che pu\u00f2 causare malfunzionamenti della pagina.<\/p>\n<p style=\"text-align: justify;\">La posizione del tag <code>&lt;script&gt;<\/code> nel documento \u00e8 cruciale per le performance. Tradizionalmente, gli script venivano inseriti alla fine del <code>&lt;body&gt;<\/code> per evitare il blocco del rendering della pagina. Quando il browser incontra un tag script, infatti, interrompe il parsing del documento HTML per scaricare ed eseguire lo script, causando un ritardo nella visualizzazione del contenuto. Per approfondire la struttura del documento HTML e la corretta organizzazione di <code>&lt;head&gt;<\/code> e <code>&lt;body&gt;<\/code>, puoi consultare la nostra <a href=\"https:\/\/gtechgroup.it\/blog\/struttura-documento-html-doctype-head-body\/\">guida sulla struttura del documento HTML<\/a>.<\/p>\n<h2>Gli Attributi async e defer<\/h2>\n<p style=\"text-align: justify;\">HTML5 ha introdotto due attributi fondamentali per il tag <code>&lt;script&gt;<\/code> che permettono di controllare il comportamento di caricamento degli script: <strong>async<\/strong> e <strong>defer<\/strong>. Entrambi consentono al browser di continuare il parsing del documento HTML mentre scarica lo script in background, ma differiscono nel momento dell&#8217;esecuzione.<\/p>\n<p style=\"text-align: justify;\">L&#8217;attributo <strong>async<\/strong> indica al browser di scaricare lo script in modo asincrono e di eseguirlo non appena il download \u00e8 completato, indipendentemente dallo stato del parsing HTML. Questo significa che gli script con async possono essere eseguiti in un ordine diverso da quello in cui appaiono nel documento. \u00c8 ideale per script indipendenti come analytics, widget social o pubblicit\u00e0.<\/p>\n<p style=\"text-align: justify;\">L&#8217;attributo <strong>defer<\/strong>, invece, indica al browser di scaricare lo script in background ma di attendere il completamento del parsing HTML prima di eseguirlo. Gli script con defer vengono eseguiti nell&#8217;ordine in cui appaiono nel documento, rendendoli la scelta migliore per script che dipendono dal DOM o che hanno dipendenze reciproche.<\/p>\n<p style=\"text-align: justify;\">La regola generale \u00e8: utilizzare <strong>defer<\/strong> per la maggior parte degli script che interagiscono con il DOM, e <strong>async<\/strong> solo per script completamente indipendenti. Entrambi gli attributi funzionano esclusivamente con script esterni (quelli con attributo src) e vengono ignorati per gli script inline.<\/p>\n<h2>Best Practice per l&#8217;Ordine di Caricamento<\/h2>\n<p style=\"text-align: justify;\">L&#8217;ordine in cui CSS e JavaScript vengono caricati ha un impatto significativo sulle <strong>performance<\/strong> della pagina e sull&#8217;esperienza utente. Ecco le best practice raccomandate:<\/p>\n<ul>\n<li><strong>CSS prima di JavaScript<\/strong>: i fogli di stile devono essere caricati prima degli script per evitare il fenomeno del FOUC (Flash of Unstyled Content)<\/li>\n<li><strong>Critical CSS inline<\/strong>: inserire il CSS critico direttamente nel tag <code>&lt;style&gt;<\/code> per il rendering immediato<\/li>\n<li><strong>Script con defer nell&#8217;head<\/strong>: grazie all&#8217;attributo defer, gli script possono essere inseriti nell&#8217;<code>&lt;head&gt;<\/code> senza bloccare il rendering<\/li>\n<li><strong>Preload per risorse critiche<\/strong>: utilizzare <code>&lt;link rel=\"preload\"&gt;<\/code> per anticipare il download di risorse importanti<\/li>\n<li><strong>Prefetch per risorse future<\/strong>: utilizzare <code>&lt;link rel=\"prefetch\"&gt;<\/code> per risorse che saranno necessarie nelle pagine successive<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Un altro aspetto importante \u00e8 l&#8217;utilizzo dell&#8217;attributo <strong>media<\/strong> nel tag <code>&lt;link&gt;<\/code> per caricare fogli di stile condizionalmente. Ad esempio, si pu\u00f2 specificare un foglio di stile dedicato alla stampa con media=&#8221;print&#8221;, che il browser scaricher\u00e0 ma non applicher\u00e0 durante la navigazione normale, migliorando le performance del rendering iniziale.<\/p>\n<p style=\"text-align: justify;\">Collegare correttamente CSS e JavaScript \u00e8 il primo passo verso la creazione di pagine web performanti e ben strutturate. Per approfondire come ottimizzare il caricamento delle risorse e migliorare le performance complessive, leggi il nostro articolo sul <a href=\"https:\/\/gtechgroup.it\/blog\/lazy-loading-nativo-html-attributo-loading\/\">lazy loading nativo in HTML<\/a>.<\/p>\n<p style=\"text-align: justify;\">Hai bisogno di aiuto con il collegamento di CSS e JavaScript alle tue pagine 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>\n","protected":false},"excerpt":{"rendered":"<p>Ogni pagina web moderna si basa su tre tecnologie fondamentali: HTML per la struttura, CSS per la presentazione visiva e JavaScript per l&#8217;interattivit\u00e0. Sapere come&hellip;<\/p>\n","protected":false},"author":2,"featured_media":164220,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"1246","_seopress_titles_title":"Come Collegare CSS e JavaScript a una Pagina HTML %%sep%% %%sitename%%","_seopress_titles_desc":"Guida completa su come collegare fogli di stile CSS e script JavaScript a una pagina HTML. Tag link, style, script, attributi async e defer.","_seopress_robots_index":"","footnotes":""},"categories":[1246],"tags":[787,1108],"class_list":["post-164040","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\/wp-json\/wp\/v2\/posts\/164040","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=164040"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/164040\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/164220"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=164040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=164040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=164040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}