Qual è la ragione per cui le variabili CSS sono definite usando due trattini (-)?

4

Variabili CSS supportate in modo nativo è una potente funzionalità per sviluppare applicazioni web complesse senza alcun passo come i preprocessori. Quindi, questo è fantastico.

Ma (all'inizio) la sintassi di definizione delle variabili non sembra molto buona.

element {
  --main-bg-color: brown;
}

element {
  background-color: var(--main-bg-color);
}

Qual è la ragione semantica per dichiarare / definire / accedere (nuove variabili supportate) in CSS usando i caratteri TWO ( --* )?

Penso che questo modo di dichiarare le variabili (forse) possa rendere l'uso della metodologia BEM (Block Element Modifier) che confonde perché l'identificatore ( --* ) ha già un valore semantico: rappresenta un modificatore .

    
posta Alexandre Thebaldi 04.03.2016 - 16:39
fonte

1 risposta

10

Quando sono state introdotte le Variabili CSS, doveva esserci una sintassi che non si scontrava con le versioni CSS esistenti e consente alle future versioni CSS di dichiarare nuove proprietà. Le proprietà che iniziano con un doppio trattino non saranno mai utilizzate dai CSS stessi, quindi possono essere utilizzate da altre persone. Poiché queste proprietà personalizzate non sono dichiarate con alcuna nuova sintassi, vengono semplicemente ignorate dai parser CSS che non ne sono a conoscenza. Questo è simile ai prefissi dei fornitori come -moz-* o -webkit-* che non sono standardizzati e vengono ignorati da altri browser. Se lo desideri, puoi visualizzare il prefisso -- come spazio dei nomi null per tuo uso.

Quindi, mentre questa sintassi è estremamente brutta, ha una certa eleganza poiché le variabili sono solo un tipo di proprietà, che ha interazioni benefiche con cose come le animazioni. È irrilevante che ciò confonda le persone che usano una certa convenzione di denominazione. Puoi ancora usare questa convenzione di denominazione, ma hai solo il doppio trattino nella parte anteriore. Altre lingue iniziano tutte le variabili con $ e nessuno si lamenta.

    
risposta data 04.03.2016 - 16:54
fonte

Leggi altre domande sui tag