{"id":167041,"date":"2025-10-06T09:00:00","date_gmt":"2025-10-06T09:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/gravity-forms-personalizzare-css-codice-custom\/"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"gravity-forms-personalizzare-css-codice-custom","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/gravity-forms-personalizzare-css-codice-custom\/","title":{"rendered":"Personalizzare Gravity Forms con CSS e Codice Custom"},"content":{"rendered":"<h2>Personalizzare Gravity Forms con CSS e Codice Custom<\/h2>\n<p>Gravity Forms genera moduli perfettamente funzionali out-of-the-box, ma spesso &#232; necessario personalizzare l&#8217;aspetto per adattarlo al design del sito, al branding aziendale o a esigenze specifiche di user experience. In questa guida vedremo come personalizzare Gravity Forms utilizzando CSS personalizzato, classi predefinite, hook PHP e snippet JavaScript per ottenere moduli che si integrano perfettamente con il tuo sito WordPress.<\/p>\n<h3>La Struttura HTML di Gravity Forms<\/h3>\n<p>Per personalizzare efficacemente il CSS, &#232; fondamentale comprendere la struttura HTML generata da Gravity Forms. Ogni modulo &#232; racchiuso in un wrapper con classe e ID specifici:<\/p>\n<p>Il wrapper principale ha la classe <code>.gform_wrapper<\/code> e un ID nel formato <code>#gform_wrapper_X<\/code> dove X &#232; l&#8217;ID del modulo. All&#8217;interno, il tag <code>&lt;form&gt;<\/code> ha l&#8217;ID <code>#gform_X<\/code>. Ogni campo &#232; racchiuso in un <code>&lt;li&gt;<\/code> con classe <code>.gfield<\/code> e ID <code>#field_X_Y<\/code> dove Y &#232; l&#8217;ID del campo. L&#8217;input effettivo ha l&#8217;ID <code>#input_X_Y<\/code>.<\/p>\n<p>Questa struttura gerarchica e prevedibile rende facile targetizzare qualsiasi elemento del modulo con selettori CSS specifici:<\/p>\n<ul>\n<li><code>.gform_wrapper<\/code> &#8212; Targetizza tutti i moduli Gravity Forms.<\/li>\n<li><code>#gform_wrapper_5<\/code> &#8212; Targetizza solo il modulo con ID 5.<\/li>\n<li><code>.gfield<\/code> &#8212; Targetizza tutti i campi.<\/li>\n<li><code>#field_5_3<\/code> &#8212; Targetizza il campo 3 del modulo 5.<\/li>\n<li><code>.gfield_required<\/code> &#8212; Targetizza tutti i campi obbligatori.<\/li>\n<li><code>.gfield_error<\/code> &#8212; Targetizza i campi con errori di validazione.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/gf-02-newform.png\" alt=\"Editor di Gravity Forms con personalizzazione dei campi e classi CSS\" \/><\/p>\n<h3>Classi CSS Predefinite di Gravity Forms<\/h3>\n<p>Gravity Forms include un set di classi CSS predefinite (dette &#8220;Ready Classes&#8221;) che puoi applicare a qualsiasi campo tramite il campo &#8220;CSS Class Name&#8221; nelle impostazioni avanzate del campo. Queste classi offrono personalizzazioni immediate senza dover scrivere CSS:<\/p>\n<p><strong>Layout a colonne:<\/strong><\/p>\n<ul>\n<li><code>gf_left_half<\/code> \/ <code>gf_right_half<\/code> &#8212; Due colonne al 50%.<\/li>\n<li><code>gf_left_third<\/code> \/ <code>gf_middle_third<\/code> \/ <code>gf_right_third<\/code> &#8212; Tre colonne al 33%.<\/li>\n<li><code>gf_first_quarter<\/code> \/ <code>gf_second_quarter<\/code> \/ <code>gf_third_quarter<\/code> \/ <code>gf_fourth_quarter<\/code> &#8212; Quattro colonne al 25%.<\/li>\n<\/ul>\n<p><strong>Aspetto:<\/strong><\/p>\n<ul>\n<li><code>gf_list_2col<\/code> \/ <code>gf_list_3col<\/code> \/ <code>gf_list_4col<\/code> \/ <code>gf_list_5col<\/code> &#8212; Dispone le opzioni di checkbox e radio button su pi&#249; colonne.<\/li>\n<li><code>gf_scroll_text<\/code> &#8212; Aggiunge un&#8217;area scrollabile per testo lungo (utile per termini e condizioni).<\/li>\n<li><code>gf_invisible<\/code> &#8212; Nasconde il campo visivamente (ma rimane nel DOM).<\/li>\n<\/ul>\n<p>Per applicare una Ready Class, apri le impostazioni del campo, vai alla scheda <strong>Appearance<\/strong> e inserisci la classe nel campo &#8220;Custom CSS Class&#8221;. Puoi combinare pi&#249; classi separandole con uno spazio.<\/p>\n<h3>CSS Personalizzato: Dove Inserirlo<\/h3>\n<p>Ci sono diversi modi per aggiungere CSS personalizzato per Gravity Forms, ognuno con vantaggi specifici:<\/p>\n<p><strong>Personalizzazione tema (consigliato):<\/strong> Vai su <strong>Aspetto &gt; Personalizza &gt; CSS aggiuntivo<\/strong> e inserisci il tuo CSS. Questo metodo &#232; semplice e i CSS sopravvivono agli aggiornamenti del tema.<\/p>\n<p><strong>Child theme:<\/strong> Aggiungi il CSS nel file <code>style.css<\/code> del child theme. Ideale per personalizzazioni estese e permanenti.<\/p>\n<p><strong>Plugin CSS custom:<\/strong> Plugin come &#8220;Simple Custom CSS and JS&#8221; permettono di aggiungere CSS senza modificare file del tema.<\/p>\n<p><strong>Inline nel campo HTML:<\/strong> Per personalizzazioni specifiche a un singolo modulo, puoi aggiungere un tag <code>&lt;style&gt;<\/code> in un campo HTML del modulo. Questo metodo &#232; rapido ma non &#232; la best practice.<\/p>\n<h3>Esempi Pratici di Personalizzazione CSS<\/h3>\n<p><strong>Personalizzare il pulsante di invio:<\/strong><\/p>\n<pre>\n.gform_wrapper .gform_button {\n    background-color: #2563eb;\n    color: #ffffff;\n    border: none;\n    border-radius: 8px;\n    padding: 12px 32px;\n    font-size: 16px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: background-color 0.3s ease;\n}\n.gform_wrapper .gform_button:hover {\n    background-color: #1d4ed8;\n}\n<\/pre>\n<p><strong>Personalizzare i campi di input:<\/strong><\/p>\n<pre>\n.gform_wrapper input[type=\"text\"],\n.gform_wrapper input[type=\"email\"],\n.gform_wrapper input[type=\"tel\"],\n.gform_wrapper textarea {\n    border: 2px solid #e5e7eb;\n    border-radius: 6px;\n    padding: 10px 14px;\n    font-size: 15px;\n    transition: border-color 0.3s ease;\n}\n.gform_wrapper input:focus,\n.gform_wrapper textarea:focus {\n    border-color: #2563eb;\n    outline: none;\n    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n<\/pre>\n<p><strong>Personalizzare i messaggi di errore:<\/strong><\/p>\n<pre>\n.gform_wrapper .gfield_error .gfield_label {\n    color: #dc2626;\n}\n.gform_wrapper .gfield_error input,\n.gform_wrapper .gfield_error textarea {\n    border-color: #dc2626;\n    background-color: #fef2f2;\n}\n.gform_wrapper .validation_message {\n    color: #dc2626;\n    font-size: 13px;\n    margin-top: 4px;\n}\n<\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/gf-03-settings.png\" alt=\"Impostazioni avanzate del campo con configurazione delle classi CSS personalizzate\" \/><\/p>\n<h3>Hook PHP: Personalizzazioni Avanzate<\/h3>\n<p>Per personalizzazioni che vanno oltre il CSS, Gravity Forms offre un sistema estensivo di hook PHP (action e filter). Questi permettono di modificare il comportamento del plugin a ogni livello, dalla validazione dei campi alla generazione dell&#8217;HTML.<\/p>\n<p><strong>Hook pi&#249; utilizzati:<\/strong><\/p>\n<p><code>gform_pre_render<\/code> &#8212; Si attiva prima del rendering del modulo. Perfetto per modificare dinamicamente le opzioni dei campi dropdown o i valori predefiniti.<\/p>\n<p><code>gform_validation<\/code> &#8212; Permette di aggiungere validazioni personalizzate. Ad esempio, puoi verificare che un codice fiscale sia valido o che un indirizzo email appartenga a un dominio specifico.<\/p>\n<p><code>gform_after_submission<\/code> &#8212; Si attiva dopo il salvataggio della entry. Ideale per integrazioni personalizzate: invia dati a API esterne, crea record nel database, avvia processi automatizzati.<\/p>\n<p><code>gform_pre_submission<\/code> &#8212; Si attiva prima del salvataggio. Puoi modificare i dati della entry prima che vengano salvati nel database.<\/p>\n<p><code>gform_notification<\/code> &#8212; Permette di modificare le notifiche email prima dell&#8217;invio. Puoi cambiare destinatario, oggetto, corpo o allegati in base alla logica personalizzata.<\/p>\n<p><strong>Esempio: Validazione personalizzata del codice fiscale:<\/strong><\/p>\n<pre>\nadd_filter(gform_field_validation_5_3, function($result, $value, $form, $field) {\n    if ($result[is_valid] &amp;&amp; strlen($value) !== 16) {\n        $result[is_valid] = false;\n        $result[message] = Il codice fiscale deve essere di 16 caratteri.;\n    }\n    return $result;\n}, 10, 4);\n<\/pre>\n<h3>JavaScript Personalizzato<\/h3>\n<p>Gravity Forms espone eventi JavaScript che permettono di aggiungere interattivit&#224; personalizzata ai moduli:<\/p>\n<p><code>gform_post_render<\/code> &#8212; Si attiva dopo il rendering del modulo. Utile per inizializzare plugin JavaScript sui campi del form.<\/p>\n<p><code>gform_page_loaded<\/code> &#8212; Si attiva quando viene caricata una nuova pagina in un modulo multi-step. Utile per eseguire azioni al cambio di pagina.<\/p>\n<p><code>gform_confirmation_loaded<\/code> &#8212; Si attiva quando viene mostrata la conferma. Perfetto per tracciare le conversioni con analytics.<\/p>\n<p><strong>Esempio: Tracciamento conversione Google Ads:<\/strong><\/p>\n<pre>\njQuery(document).on(gform_confirmation_loaded, function(event, formId) {\n    if (formId === 5) {\n        gtag(event, conversion, {\n            send_to: AW-XXXXXXXXX\/YYYYYYYY\n        });\n    }\n});\n<\/pre>\n<h3>Personalizzare il Tema del Modulo<\/h3>\n<p>A partire dalle versioni pi&#249; recenti, Gravity Forms include un sistema di &#8220;Form Themes&#8221; che permette di applicare stili predefiniti ai moduli. Puoi scegliere tra:<\/p>\n<ul>\n<li><strong>Gravity Forms 2.5 Theme:<\/strong> Lo stile classico con etichette sopra i campi.<\/li>\n<li><strong>Orbital Theme:<\/strong> Uno stile moderno con bordi arrotondati e spaziatura generosa.<\/li>\n<\/ul>\n<p>Il tema del modulo pu&#242; essere selezionato nelle impostazioni del singolo modulo o globalmente nelle impostazioni generali del plugin. Il tema si applica come base: il tuo CSS personalizzato lo sovrascrive per le personalizzazioni specifiche.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/gf-06-status.png\" alt=\"Stato del sistema Gravity Forms con verifica della compatibilit&#224; con temi e personalizzazioni\" \/><\/p>\n<h3>Personalizzazioni per Elementor<\/h3>\n<p>Se utilizzi Elementor come page builder, ci sono considerazioni specifiche per la personalizzazione di Gravity Forms:<\/p>\n<ul>\n<li>Il widget Gravity Forms di Elementor include opzioni di styling direttamente nel pannello Elementor, permettendo di personalizzare colori, tipografia e spaziatura senza CSS.<\/li>\n<li>Gli stili Elementor hanno una specificit&#224; CSS elevata e possono sovrascrivere gli stili nativi di Gravity Forms. Se il tuo CSS personalizzato non funziona, potresti dover aumentare la specificit&#224; dei selettori.<\/li>\n<li>Per i moduli inseriti tramite shortcode in Elementor, usa il widget HTML di Elementor e applica il CSS nella sezione &#8220;Custom CSS&#8221; del widget (disponibile in Elementor Pro).<\/li>\n<\/ul>\n<h3>Responsive Design<\/h3>\n<p>Gravity Forms &#232; responsive per impostazione predefinita: i layout a colonne si impilano automaticamente su schermi piccoli. Tuttavia, potresti voler personalizzare ulteriormente il comportamento responsive:<\/p>\n<pre>\n@media (max-width: 640px) {\n    .gform_wrapper .gf_left_half,\n    .gform_wrapper .gf_right_half {\n        width: 100%;\n    }\n    .gform_wrapper .gform_button {\n        width: 100%;\n        padding: 14px;\n    }\n    .gform_wrapper input[type=\"text\"],\n    .gform_wrapper textarea {\n        font-size: 16px; \/* Previene lo zoom su iOS *\/\n    }\n}\n<\/pre>\n<p>Il font-size di almeno 16px sugli input &#232; particolarmente importante per iOS: Apple Safari fa zoom automaticamente sugli input con font-size inferiore a 16px, causando un&#8217;esperienza utente fastidiosa.<\/p>\n<h3>Best Practice per le Personalizzazioni<\/h3>\n<ul>\n<li>Usa selettori specifici (con l&#8217;ID del modulo) quando la personalizzazione riguarda un singolo modulo.<\/li>\n<li>Non modificare mai i file core di Gravity Forms: ogni aggiornamento sovrascriver&#224; le modifiche.<\/li>\n<li>Aggiungi gli hook PHP nel file <code>functions.php<\/code> del child theme o in un plugin personalizzato (mu-plugin).<\/li>\n<li>Testa sempre le personalizzazioni su diversi browser e dispositivi.<\/li>\n<li>Documenta le personalizzazioni per facilitare la manutenzione futura.<\/li>\n<li>Usa le Ready Classes di Gravity Forms prima di scrivere CSS personalizzato: spesso la soluzione &#232; gi&#224; inclusa nel plugin.<\/li>\n<\/ul>\n<p>Per personalizzazioni avanzate dei tuoi moduli Gravity Forms, <a href=\"https:\/\/gtechgroup.it\/contatti\/\">contatta il team di G Tech Group<\/a>.<\/p>\n<div style=\"background:#f9f9f9;border:1px solid #e0e0e0;padding:20px;margin-top:30px;border-radius:8px;\">\n<h4>Continua a Leggere: Guide WordPress Essenziali<\/h4>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-elementor-wordpress-guida-principianti\/\">Guida completa a Elementor<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/wp-rocket-installare-configurare-wordpress\/\">Ottimizzare WordPress con WP Rocket<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-configurare-seopress-wordpress-guida\/\">SEOPress: la guida definitiva alla SEO su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-attivare-updraftplus-wordpress\/\">Backup WordPress con UpdraftPlus<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/woocommerce-seo-ottimizzare-prodotti-categorie\/\">WooCommerce SEO: ottimizzare il tuo negozio online<\/a><\/li>\n<\/ul>\n<\/div>\n<h3>Migliora il Tuo Sito WordPress<\/h3>\n<p>Scopri le nostre guide complete sugli altri plugin essenziali per WordPress:<\/p>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-elementor-wordpress-guida-principianti\/\">Come Installare Elementor su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/wp-rocket-installare-configurare-wordpress\/\">Come Installare e Configurare WP Rocket<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-configurare-seopress-wordpress-guida\/\">Come Installare e Configurare SEOPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-attivare-updraftplus-wordpress\/\">Come Installare e Configurare UpdraftPlus<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Personalizzare Gravity Forms con CSS e Codice Custom Gravity Forms genera moduli perfettamente funzionali out-of-the-box, ma spesso &#232; necessario personalizzare l&#8217;aspetto per adattarlo al design&hellip;<\/p>\n","protected":false},"author":0,"featured_media":167015,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Personalizzare Gravity Forms con CSS | Guida","_seopress_titles_desc":"Come personalizzare Gravity Forms con CSS e codice custom. Stili, layout, hooks e filtri per sviluppatori.","_seopress_robots_index":"","footnotes":""},"categories":[1],"tags":[3422,2957,3329,3328,471],"class_list":["post-167041","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria","tag-codice","tag-css","tag-design","tag-gravity-forms","tag-personalizzazione"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167041","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"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=167041"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167041\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/167015"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=167041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=167041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=167041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}