Blog
20/04/2017

Proprietà personalizzate CSS o Custom Properties

Ormai è realtà. Possiamo finalmente utilizzare le Proprietà Personalizzate o CSS Custom Properties!

Ma prima di tutto, iniziamo con un buon <h2>, seguito da un <p> riassuntivo.

Le CSS Custom Properties o Proprietà Personalizzate

Ovvero, come fare magie all’interno di un foglio di stile CSS.

Le Proprietà Personalizzate di CSS rappresentano un concetto “nuovo” nell’utilizzo dei fogli di stile. In breve, si tratta dell’uso di variabili accessibili all’interno del documento CSS e persino da Javascript, in modo NATIVO.

Perché “nuovo” tra virgolette? Probabilmente conosci già i CSS Preprocessors. Sono stati molto popolari, ma con l’arrivo delle Custom Properties e il progressivo supporto da parte dei browser, sono destinati a scomparire prima o poi. In fondo all’articolo trovi una tabella con il supporto tra browser, ma ti anticipo che già il 70% degli utenti utilizza un browser compatibile con le Proprietà Personalizzate.

 

CSS e Proprietà Personalizzate

Per capire il vantaggio rispetto a un foglio di stile CSS tradizionale, vediamo un esempio di foglio CSS senza Custom Properties e poi lo “tradurremo” usando le Custom Properties.

Supponiamo di voler impostare un body con un certo colore di sfondo, che poi useremo anche per il testo di un livello, e viceversa il colore del testo del body come sfondo della stessa.

Il livello .capa1 avrà un padding di 20px, la stessa misura che useremo come margin-top per .capa2.


body{
     background-color:#1b1b1b;
     color:#fff;
}
.capa1{
     padding:20px;
     color:#1b1b1b;
     background-color:#fff;
}
.capa2{
     margin-top:20px;
}

Ora riproponiamo lo stesso esempio, ma questa volta usando le Proprietà Personalizzate.


:root{
     --color1:#1b1b1b;
     --color2:#fff;
     --mainSpacing:20px;
}
body{
     background-color:var(--color1);
     color:var(--color2);
}
.capa1{
     padding:var(--mainSpacing);
     color:var(--color1);
     background-color:var(--color2);
}
.capa2{
     margin-top:var(--mainSpacing);
}

Con :root dichiariamo le variabili, che saranno accessibili in tutto il CSS; usiamo il doppio trattino — per dichiarare una variabile e il suo valore. Per utilizzarle, basta richiamare var(–NOME_VARIABILE);.

Immagina ora quanto può essere utile in un foglio CSS con oltre 1000 righe di codice: modificando un solo valore, il cambiamento si rifletterà ovunque nel documento.

 

Un passo oltre

O anche due. Perché le CSS Custom Properties permettono di fare calcoli, operazioni condizionali e di impostare valori di default, nel caso una variabile non sia definita. Sembra Javascript, vero? E invece tutto questo avviene direttamente nel CSS.

Possiamo sommare, moltiplicare, confrontare valori diversi e applicare un valore o un altro a seconda della condizione.


.caja{
     /*Se la variabile1 non è dichiarata, verrà applicato 10px*/
     margin-top:var(--variable1, 10px);

     /*Possiamo anche usare variabili per impostare un valore di default*/
     padding-top:var(--variable1,var(--variable2));

    /*Possiamo sommare, sottrarre, moltiplicare e dividere (*attenzione agli spazi in somma e sottrazione)*/
     padding-top:calc(var(--variable1) + 10px);
     height:calc(var(--variable1) - 5px);
     line-height:calc(var(--variable1) * 2);
     width:calc((var(--variable1) - 5px)/2);
     
}

Altri esempi:


:root{
     /*Possiamo creare del testo da inserire in un :before successivamente*/
     --texto:"Click per vedere";
}
.caja:before{
     content:var(--text);
}
.caja2:before{
     /*Possiamo aggiungere altro testo dopo la variabile dichiarata (ad esempio, un link a un progetto)*/
     content:var(--text)' il nostro progetto completo';
}
.caja2:before{
     /*Ora lo usiamo per un link a una notizia*/
     content:var(--text)' la nostra notizia';
}

Esempio condizionale:


:root{
     /*Accessibile anche tramite Javascript*/
     --variableCond: if(x > 5) this.width = 10;
}

 

Supporto tra browser

Come puoi vedere, praticamente tutti i browser le supportano… Tranne Explorer! Che sorpresa, NON ME LO ASPETTAVO! Un pensiero nostalgico a quegli anni meravigliosi in cui dovevamo fare acrobazie per far funzionare tutto su Explorer 6.

Per fortuna, a differenza di allora, oggi meno del 4% degli utenti usa ancora Explorer. Niente di grave.

La percentuale di utenti che naviga con un browser compatibile con le Custom Properties è del 70,9%. Un dato molto alto.

propiedades personalizadas o custom properties

http://caniuse.com/#feat=css-variables

Ti è piaciuto?
Iscriviti
Articoli correlati
iniziamo a lavorare
al tuo progetto?

Analizziamo la tua situazione attuale e definiamo il prossimo passo.

Contatta ora
Il nostro sito utilizza i cookie per raccogliere informazioni sul tuo dispositivo e sulla tua attività di navigazione. Utilizziamo questi dati per migliorare il sito, garantire la sicurezza e fornire contenuti personalizzati. Puoi gestire le tue preferenze sui cookie cliccando qui.
Accetta i cookie Impostare Rifiuta i cookie
Informazioni di base sui cookie
Questo sito web utilizza cookie e/o tecnologie simili che archiviano e recuperano informazioni durante la navigazione. In generale, queste tecnologie possono avere finalità molto diverse, come, ad esempio, riconoscerti come utente, ottenere informazioni sulle tue abitudini di navigazione o personalizzare il modo in cui vengono visualizzati i contenuti. I nostri usi specifici di queste tecnologie sono descritti di seguito. Di default tutti i cookie sono disabilitati, ad eccezione di quelli tecnici, necessari al funzionamento del sito. Se desideri maggiori informazioni o eserciti i tuoi diritti in materia di protezione dei dati, puoi consultare la ns Política de cookies".
Accetta i cookieImpostare
Cookie tecnici necessari Sempre attivo
I cookie tecnici sono strettamente necessari per il funzionamento del nostro sito web e per la tua navigazione al suo interno. Questi tipi di cookie sono quelli che, ad esempio, ci permettono di identificarti, darti accesso ad alcune parti riservate della pagina, se necessario, o ricordare diverse opzioni o servizi già selezionati da te, come le tue preferenze sulla privacy. Pertanto, sono attivati ​​per impostazione predefinita e la tua autorizzazione non è necessaria. Configurando il tuo browser puoi bloccare o avvisarti della presenza di questo tipo di cookie, anche se tale blocco influenzerà il corretto funzionamento delle diverse funzionalità del nostro sito web.
Cookies de análisis
Las cookies de análisis son las utilizadas para llevar a cabo el análisis anónimo del comportamiento de los usuarios de la web y que permiten medir la actividad del usuario y elaborar perfiles de navegación con el fin objetivo de mejorar los sitios web.
Cookies publicitarias
Las cookies publicitarias permiten la gestión de los espacios publicitarios de la web. Además, estas cookies pueden ser de publicidad personalizada y permitir así la gestión de los espacios publicitarios de la web en base al comportamiento y hábitos de navegación de usuario, de donde se obtiene su perfil y permiten personalizar la publicidad que se muestra en el navegador del usuario u otros perfiles y redes sociales del usuario.
Conferma le preferenze
contattaci
Modulo

Raccontaci
il tuo progetto

Indica il contesto generale della tua organizzazione e l'ambito pianificato del progetto.
Code Barcelona, ​​in qualità di responsabile del trattamento dei tuoi dati, li tratterà per rispondere alla domanda e/o richiesta che ci farai tramite questo modulo di contatto. Puoi esercitare i tuoi diritti di accesso, rettifica, cancellazione, nonché altri diritti consultando le informazioni dettagliate aggiuntive sulla protezione dei dati nella nostra politica sulla riservatezza.
Title
Popupcontent
Analisi della tua situazione digitale

Esamineremo la tua attuale situazione digitale. Ti contatteremo per comprendere il tuo contesto e valutare insieme quali aree analizzare, e successivamente prepareremo un audit con i punti chiave e le raccomandazioni.

Code Barcelona, ​​in qualità di responsabile del trattamento dei tuoi dati, li tratterà per rispondere alla domanda e/o richiesta che ci farai tramite questo modulo di contatto. Puoi esercitare i tuoi diritti di accesso, rettifica, cancellazione, nonché altri diritti consultando le informazioni dettagliate aggiuntive sulla protezione dei dati nella nostra politica sulla riservatezza.
Aceptar