2017-05-11 3 views
1

Ist es möglich, eine Eigenschaft Variable einen Wert von einer anderen Variable haben?Variable innerhalb einer anderen Variablen

So:

:root { 
    --theme-primary: --color-red; 
    --color-red: #F44336; 
} 

... oder:

:root { 
    --theme-primary: var(--color-red); 
    --color-red: #F44336; 
} 

Wenn möglich, was der Code ist, ohne JS mit wie möglich?

+1

Da [CSS Variablen] (https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables) sind neue Art von Ich werde nur einen Link für diejenigen hinzufügen, die noch nichts davon gehört haben. – ArneHugo

Antwort

2

Es ist möglich. Im folgenden Beispiel erhält die Variable --theme-primary den Wert --color-yellow. Wenn es nicht möglich ist (die Variable --color-yellow ist nicht definiert oder nicht gültig) --theme-primary wäre schwarz (#000).

:root { 
 
    --theme-primary: var(--color-yellow, #000); 
 
    --color-yellow: yellow; 
 
    --color-blue: blue; 
 
} 
 
:root { 
 
    --theme-secondary: var(--color-blue); 
 
} 
 
div { 
 
    background: var(--theme-primary, green); 
 
    border:5px dashed var(--theme-secondary, white); 
 
    height:100px; 
 
    width:100px; 
 
}
<div>Hello World</div>

Sie können auch eine Variable als Ausweich (zweiter Parameter von val) verwenden. So können Sie so etwas wie var(--theme-primary, var(--theme-secondary, white));

Weiterführende Links tun:

+0

Mein primärer Browser ist Firefox, auf dem die neueste Version läuft, und ich bin sicher, dass alle gängigen Browser dies unterstützen. –

+0

Hmmm ... Ich bin ein bisschen neugierig was der "zweite Wert" in der 'var()' war. Ist es der Fallback-Wert, wenn etwas Fehler mit der Variable geht? –

+0

@LloydDominic - das ist richtig! Wenn der erste Parameter fehlschlägt, wird der zweite Parameter wirksam. Und Sie sehen im obigen Beispiel kein Fallback, daher wird der erste Parameter erfolgreich verwendet. –

Verwandte Themen