I am part of that 82% that got it wrong in Lea’s quiz (tweet version).
Here’s the code:
:root { --accent-color: skyblue; } div { --accent-color: revert; background: var(--accent-color, orange); }
So what background do I expect
My brain goes like this:
Nope.
Lea:
[Because the value is revert it] cancels out any author styles, and resets back to whatever value the property would have from the user stylesheet and UA stylesheet. Assuming there is no--accent-colordeclaration in the user stylesheet, and of course UA stylesheets don’t set custom properties, then that means the property doesn’t have a value.
Since custom properties are inherited properties (unless they areregisteredwithinherits:false, but this one is not), this means the inherited value trickles in, which is — you guessed it —skyblue.
Stephen posted a similar quiz the other day:
Again, my brain does it totally wrong. It goes:
will inherit yellow from the
, which it would have done naturally anyway, but whatever, it’s still yellow.Nope.
Apparently inherit there is actually inheriting from the next place up the tree that sets it, which html does, so green. That actually is how normal inheriting works. It’s just a brain twister because it’s easy to conflate color the property with --color the custom property.
It also might be useful to know that when you actually declare a custom property with @property you can say whether you want it to inherit or not. So that would change the game with these brain twisters!
@property --property-name { syntax: '<color>'; inherits: false; initial-value: #c0ffee; }
Das obige ist der detaillierte Inhalt vonBenutzerdefinierte Eigenschaften Gehirn Twisters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!