{"id":166421,"date":"2024-06-03T09:00:00","date_gmt":"2024-06-03T07:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/elementor-custom-css-codice-personalizzato-sviluppatori\/"},"modified":"2026-05-25T12:21:12","modified_gmt":"2026-05-25T10:21:12","slug":"elementor-custom-css-codice-personalizzato-sviluppatori","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/elementor-custom-css-codice-personalizzato-sviluppatori\/","title":{"rendered":"Elementor: Custom CSS e Codice Personalizzato (Guida Sviluppatori)"},"content":{"rendered":"<h2>Introduzione: Quando il Visual Builder Non Basta<\/h2>\n<p>Elementor \u00e8 un editor visuale straordinario che copre la maggior parte delle esigenze di design. Ma ci sono momenti in cui hai bisogno di quel tocco in pi\u00f9 che solo il codice pu\u00f2 darti: un&#8217;animazione CSS unica, un layout che non rientra nelle opzioni standard, o un&#8217;integrazione con un servizio esterno. Questa guida \u00e8 pensata per chi ha conoscenze tecniche e vuole spingere Elementor oltre i suoi limiti predefiniti.<\/p>\n<p>Nota: alcune delle funzionalit\u00e0 descritte (come il Custom CSS per singolo widget) sono disponibili solo in <a href=\"\/blog\/elementor-pro-vs-free-differenze-upgrade\/\">Elementor Pro<\/a>. Quando \u00e8 il caso, lo segnaleremo chiaramente.<\/p>\n<h2>Custom CSS in Elementor Pro<\/h2>\n<p>Elementor Pro aggiunge un campo <strong>Custom CSS<\/strong> nella tab Avanzate di ogni widget, colonna, sezione e container. Questo \u00e8 il modo pi\u00f9 pulito per aggiungere stili personalizzati.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/editor-widgets.png\" alt=\"Editor con campo CSS personalizzato\" width=\"1400\" height=\"900\" class=\"alignnone size-full\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/09-settings-advanced.png\" alt=\"Impostazioni avanzate di Elementor\" \/><\/p>\n<h3>Sintassi del Custom CSS<\/h3>\n<p>Il campo Custom CSS utilizza il selettore speciale <code>selector<\/code> che punta automaticamente all&#8217;elemento corrente:<\/p>\n<ul>\n<li><code>selector<\/code> \u2014 si riferisce all&#8217;elemento wrapper del widget\/sezione<\/li>\n<li><code>selector .elementor-heading-title<\/code> \u2014 un discendente specifico all&#8217;interno del widget<\/li>\n<li><code>selector:hover<\/code> \u2014 lo stato hover dell&#8217;elemento<\/li>\n<\/ul>\n<p>Esempio pratico: per aggiungere un&#8217;ombra al hover che si muove verso il basso:<\/p>\n<p><code>selector { transition: transform 0.3s ease, box-shadow 0.3s ease; }<\/code><\/p>\n<p><code>selector:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.15); }<\/code><\/p>\n<p>Questo tipo di effetto sarebbe difficile da ottenere solo con le opzioni dell&#8217;interfaccia.<\/p>\n<h3>Custom CSS a Livello di Pagina<\/h3>\n<p>Per aggiungere CSS che si applica all&#8217;intera pagina:<\/p>\n<ol>\n<li>Fai clic sull&#8217;icona ingranaggio nel footer del pannello (Impostazioni pagina)<\/li>\n<li>Vai alla tab <strong>Avanzate<\/strong><\/li>\n<li>Usa il campo <strong>Custom CSS<\/strong><\/li>\n<\/ol>\n<p>Qui puoi scrivere CSS standard senza il selettore <code>selector<\/code>, usando i tuoi selettori CSS normali.<\/p>\n<h2>Aggiungere CSS Globale (Senza Elementor Pro)<\/h2>\n<p>Se usi la versione gratuita di Elementor, puoi comunque aggiungere CSS personalizzato in diversi modi:<\/p>\n<h3>Il Customizer di WordPress<\/h3>\n<ol>\n<li>Vai su <strong>Aspetto \u2192 Personalizza<\/strong><\/li>\n<li>Fai clic su <strong>CSS aggiuntivo<\/strong><\/li>\n<li>Scrivi il tuo CSS qui \u2014 si applicher\u00e0 a tutto il sito<\/li>\n<\/ol>\n<p>Questo \u00e8 il metodo pi\u00f9 semplice e non richiede alcun plugin aggiuntivo. Il CSS inserito qui viene caricato nell&#8217;head della pagina con un tag <code>&lt;style&gt;<\/code>.<\/p>\n<h3>Il Widget HTML<\/h3>\n<p>Il widget <strong>HTML<\/strong> di Elementor permette di inserire codice HTML, CSS e JavaScript inline nella pagina. Puoi inserire un blocco <code>&lt;style&gt;<\/code> per aggiungere CSS specifico per quella posizione nella pagina:<\/p>\n<p>Il widget HTML \u00e8 molto versatile: puoi usarlo per embed di servizi esterni (form, calendari, mappe), pixel di tracciamento, widget di chat e qualsiasi altro codice che deve essere inserito nella pagina.<\/p>\n<h2>JavaScript Personalizzato<\/h2>\n<p>Per aggiungere JavaScript personalizzato alle pagine Elementor, hai diverse opzioni:<\/p>\n<h3>Tramite il Widget HTML<\/h3>\n<p>Inserisci il codice JavaScript in un widget HTML, racchiuso in tag <code>&lt;script&gt;<\/code>. Il codice verr\u00e0 eseguito quando il widget viene renderizzato. Assicurati di avvolgere il codice in un IIFE (Immediately Invoked Function Expression) per evitare conflitti con altre librerie o istanze del codice.<\/p>\n<h3>Tramite il functions.php del Tema<\/h3>\n<p>Per script che devono caricarsi su tutte le pagine, il modo corretto \u00e8 aggiungerli tramite il <code>functions.php<\/code> del tema (preferibilmente un child theme) usando <code>wp_enqueue_script()<\/code>:<\/p>\n<p>Questa \u00e8 la best practice WordPress per caricare script: il sistema gestisce le dipendenze, il caching e la posizione nel documento.<\/p>\n<h2>Hooks e Filtri di Elementor<\/h2>\n<p>Elementor espone numerosi hooks (azioni e filtri) che permettono agli sviluppatori di estendere e modificare il comportamento del page builder:<\/p>\n<h3>Hooks Principali (Azioni)<\/h3>\n<ul>\n<li><code>elementor\/widgets\/register<\/code> \u2014 per registrare widget personalizzati<\/li>\n<li><code>elementor\/controls\/register<\/code> \u2014 per registrare controlli personalizzati<\/li>\n<li><code>elementor\/frontend\/after_enqueue_styles<\/code> \u2014 per aggiungere stili personalizzati nel frontend<\/li>\n<li><code>elementor\/frontend\/after_register_scripts<\/code> \u2014 per registrare script personalizzati<\/li>\n<li><code>elementor\/editor\/after_enqueue_styles<\/code> \u2014 per aggiungere stili all&#8217;editor<\/li>\n<li><code>elementor\/element\/before_section_end<\/code> \u2014 per aggiungere controlli a widget esistenti<\/li>\n<\/ul>\n<h3>Filtri Principali<\/h3>\n<ul>\n<li><code>elementor\/frontend\/the_content<\/code> \u2014 per modificare il contenuto generato da Elementor<\/li>\n<li><code>elementor\/widget\/render_content<\/code> \u2014 per modificare l&#8217;output di un singolo widget<\/li>\n<\/ul>\n<h2>Creare un Widget Personalizzato<\/h2>\n<p>Per i casi pi\u00f9 avanzati, puoi creare il tuo widget Elementor personalizzato. Un widget personalizzato \u00e8 una classe PHP che estende <code>ElementorWidget_Base<\/code> e implementa i seguenti metodi:<\/p>\n<ul>\n<li><code>get_name()<\/code> \u2014 identificativo unico del widget<\/li>\n<li><code>get_title()<\/code> \u2014 nome visibile nel pannello<\/li>\n<li><code>get_icon()<\/code> \u2014 icona nel pannello (classe di Font Awesome)<\/li>\n<li><code>get_categories()<\/code> \u2014 categorie nel pannello<\/li>\n<li><code>register_controls()<\/code> \u2014 definizione dei controlli nell&#8217;editor (testi, colori, slider, ecc.)<\/li>\n<li><code>render()<\/code> \u2014 il template HTML per il frontend<\/li>\n<li><code>content_template()<\/code> \u2014 il template JavaScript per l&#8217;anteprima nell&#8217;editor<\/li>\n<\/ul>\n<p>Il widget va poi registrato tramite l&#8217;hook <code>elementor\/widgets\/register<\/code>. Questa \u00e8 un&#8217;operazione avanzata che richiede buona conoscenza di PHP e dell&#8217;architettura di Elementor. La documentazione ufficiale per sviluppatori \u00e8 disponibile su <a href=\"https:\/\/developers.elementor.com\/\" target=\"_blank\" rel=\"noopener\">developers.elementor.com<\/a>.<\/p>\n<h2>Attributi Personalizzati<\/h2>\n<p>Elementor Pro permette di aggiungere attributi HTML personalizzati a qualsiasi widget dalla tab Avanzate \u2192 Attributi. Questo \u00e8 utile per:<\/p>\n<ul>\n<li>Aggiungere attributi <code>data-*<\/code> per JavaScript personalizzato<\/li>\n<li>Aggiungere attributi ARIA per l&#8217;accessibilit\u00e0<\/li>\n<li>Aggiungere <code>id<\/code> personalizzati per ancoraggi e targeting CSS<\/li>\n<li>Aggiungere classi CSS extra per targeting da fogli di stile esterni<\/li>\n<\/ul>\n<p>Nella versione gratuita, puoi comunque aggiungere un <strong>CSS ID<\/strong> e <strong>CSS Classes<\/strong> nella tab Avanzate di ogni elemento.<\/p>\n<h2>Debug e Risoluzione Problemi<\/h2>\n<p>Quando il codice personalizzato non funziona come previsto:<\/p>\n<ol>\n<li><strong>Ispeziona con DevTools<\/strong>: apri il browser DevTools (F12) per verificare che il CSS sia applicato correttamente. Controlla la tab &#8220;Stili&#8221; per vedere se i tuoi stili sono sovrascritti da altri<\/li>\n<li><strong>Controlla la specificit\u00e0<\/strong>: Elementor genera CSS con specificit\u00e0 alta. Potresti dover aumentare la specificit\u00e0 del tuo CSS personalizzato<\/li>\n<li><strong>Rigenera CSS<\/strong>: dopo modifiche al codice, vai su Elementor \u2192 Strumenti e fai clic su &#8220;Rigenera file e dati CSS&#8221; per forzare la rigenerazione<\/li>\n<li><strong>Svuota la cache<\/strong>: se usi un plugin di caching, svuota la cache dopo le modifiche<\/li>\n<li><strong>Modalit\u00e0 sicura<\/strong>: se il sito si rompe, puoi attivare la modalit\u00e0 sicura di Elementor aggiungendo <code>?elementor-safe-mode=1<\/code> all&#8217;URL dell&#8217;editor<\/li>\n<\/ol>\n<h2>Conclusione<\/h2>\n<p>Il codice personalizzato in Elementor apre possibilit\u00e0 infinite. Dal semplice ritocco CSS alla creazione di widget personalizzati, le opzioni per gli sviluppatori sono vaste. La chiave \u00e8 trovare il giusto equilibrio tra le comodit\u00e0 dell&#8217;editor visuale e la potenza del codice: usa l&#8217;interfaccia per il 90% del lavoro e il codice per quel 10% che richiede precisione chirurgica.<\/p>\n<p>Scopri tutte le <a href=\"\/blog\/elementor-impostazioni-configurazione-completa\/\">impostazioni di Elementor<\/a> per capire come configurare al meglio l&#8217;ambiente di sviluppo. Per progetti che richiedono sviluppo custom avanzato, il team di <a href=\"https:\/\/gtechgroup.it\/\">G Tech Group<\/a> offre servizi di <a href=\"https:\/\/gtechgroup.it\/realizzazione-siti-web\/\">sviluppo web professionale<\/a>. <a href=\"https:\/\/gtechgroup.it\/contatti\/\">Contattaci<\/a> per discutere il tuo progetto.<\/p>\n<h2>Snippet CSS Pratici<\/h2>\n<h3>Nascondere su Mobile<\/h3>\n<pre><code>@media (max-width: 767px) {\n  .hide-on-mobile { display: none !important; }\n}<\/code><\/pre>\n<h3>Hover Pulsante Personalizzato<\/h3>\n<pre><code>selector .elementor-button:hover {\n  transform: translateY(-3px);\n  box-shadow: 0 10px 30px rgba(0,0,0,0.2);\n}<\/code><\/pre>\n<h3>Sfondo Gradiente Animato<\/h3>\n<pre><code>selector {\n  background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5);\n  background-size: 400% 400%;\n  animation: gradient 8s ease infinite;\n}<\/code><\/pre>\n<h2>Browser Inspector<\/h2>\n<p>Premi F12, usa il selettore elementi per cliccare qualsiasi widget e vedere\/modificare il CSS in tempo reale.<\/p>\n<h2>Selettori CSS di Elementor<\/h2>\n<p>Ogni widget Elementor genera classi CSS specifiche. I selettori piu utili:<\/p>\n<pre><code>\/* Widget specifico *\/\nselector .elementor-heading-title { }\nselector .elementor-button { }\nselector .elementor-image img { }\nselector .elementor-text-editor p { }\n\n\/* Sezione\/Container *\/\nselector { background: #fff; }\nselector:hover { transform: scale(1.02); }<\/code><\/pre>\n<h2>Debugging CSS<\/h2>\n<ol>\n<li>Apri <strong>Chrome DevTools<\/strong> (F12)<\/li>\n<li>Usa il <strong>selettore elementi<\/strong> per cliccare il widget<\/li>\n<li>Nella tab <strong>Styles<\/strong> vedi tutto il CSS applicato<\/li>\n<li>Modifica i valori in tempo reale per testare<\/li>\n<li>Copia il CSS finale nel campo Custom CSS di Elementor<\/li>\n<\/ol>\n<h2>Guide Correlate della Serie Elementor<\/h2>\n<p>Continua a esplorare Elementor con le nostre guide:<\/p>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/elementor-animazioni-effetti-motion-guida\/\">Animazioni e Motion<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/elementor-tipografia-colori-stili-globali-design-system\/\">Tipografia e Design System<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/elementor-seo-ottimizzare-pagine-motori-ricerca\/\">Elementor e SEO<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/elementor-performance-velocita-ottimizzazione\/\">Performance<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduzione: Quando il Visual Builder Non Basta Elementor \u00e8 un editor visuale straordinario che copre la maggior parte delle esigenze di design. Ma ci sono&hellip;<\/p>\n","protected":false},"author":2,"featured_media":166407,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Elementor: Custom CSS e Codice Personalizzato","_seopress_titles_desc":"Guida sviluppatori per Elementor: custom CSS per widget e pagine, widget HTML, hooks, filtri e come estendere il page builder con codice.","_seopress_robots_index":"","footnotes":""},"categories":[61],"tags":[2559,2561,2558,2562,2560],"class_list":["post-166421","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-codice-personalizzato","tag-css-wordpress","tag-custom-css-elementor","tag-guida-sviluppatori","tag-sviluppo-elementor"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/166421","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=166421"}],"version-history":[{"count":4,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/166421\/revisions"}],"predecessor-version":[{"id":166521,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/166421\/revisions\/166521"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/166407"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=166421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=166421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=166421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}