Nous avons appris qu'une limitation de l'utilisation pour insérer un peu de SVG est que vous ne pouvez pas écrire de sélecteurs CSS composés qui affectent par là. Par exemple:
Cette frontière DOM shadow empêche les sélecteurs comme
/* nope */ .parent .child ( )
de travailler. Peut-être qu'un jour nous aurons un sélecteur CSS fonctionnel pour pénétrer cette frontière du DOM shadow, mais au moment d'écrire ces lignes, il n'est pas encore là.
Vous pouvez toujours définir le remplissage sur le parent et cela descendra en cascade, mais cela ne vous donnera qu'une seule couleur (n'oubliez pas de ne pas définir l'
fill
attribut de présentation sur ces formes!).
Fabrice Weinberg a cependant pensé à une petite technique intéressante pour obtenir deux couleurs, en exploitant le currentColor
mot - clé en CSS.
Définissez la propriété CSS de remplissage sur toutes les formes que vous aimez sur currentColor:
.shape-1, .shape-2 ( fill: currentColor; )
De cette façon, lorsque vous définissez la propriété de couleur sur le parent , cela se répercutera également. Il ne fera rien tout seul (à moins que vous ne l'ayez
dedans), mais
currentColor
est basé sur color
pour que vous puissiez l'utiliser pour d'autres choses.
svg.variation-1 ( fill: red; color: orange; ) svg.variation-2 ( fill: green; color: lightblue; )
Démo:
Voir le logo Pen CodePen en SVG en ligne par Chris Coyier (@chriscoyier) sur CodePen.