Généralement, CSS ne peut pas faire si/alors/sinon, mais en utilisant par exemple le var
on peut, en quelque sorte.
En utilisant var() vous pouvez définir une valeur de repli lorsque la donnée variable n'est pas encore définie
Le second (en option) argument, la déclaration de valeur, a des limites bien.
La production correspond à n'importe quelle séquence d'un ou de plusieurs jetons . Donc, tant que la séquence ne contient pas ,, sans équivalent <) -token>, <] -token>, ou <} -token> ou jetons de niveau supérieur ou jetons avec une valeur de « ! » , il représente l'intégralité de ce qu'une déclaration valide peut avoir comme valeur.
Src:
Cela ne fonctionnera pas
:root{
--myOld: lime;
--myVar: var(--myNew, --myOld)
}
div {
color: var(--myVar)
}
<div>Hey there</div>
Cela fonctionne
:root{
--myOld: lime;
--myVar: var(--myNew, var(--myOld))
}
div {
color: var(--myVar)
}
<div>Hey there</div>
Et cela fonctionnera
:root{
--myVar: var(--myNew, var(--myOld, red))
}
div {
color: var(--myVar)
}
<div>Hey there</div>
Pour javascript, faire comme vous obtenez une erreur de référence, et pour éviter que vous pouvez faire comme ceci:
myVar = (typeof newVar === 'undefined') ? myVar : newVar;
Src: Why does an undefined variable in Javascript sometimes evaluate to false and sometimes throw an uncaught ReferenceError?
Merci pour le javascript, je savais que, juste raccourci mon code pour que tout le monde comprenne, j'ai accepté la réponse @ BoltClock à cause de cette information précieuse 'L'ancienne valeur est surchargée pendant la résolution en cascade» – ZuzEL
@ ZuzEL C'est parfaitement bien – LGSon