Closed Bug 1031344 Opened 10 years ago Closed 10 years ago

Using CSS variables as values of rgb()

Categories

(Core :: CSS Parsing and Computation, defect)

defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: sjw+bugzilla, Unassigned)

References

Details

Attachments

(1 file)

Attached file testcase.html
There is a strange case if you use CSS variables as values of rgb(). :root { --r: 0; --b: 0; --rgb: rgb(var(--r), var(--g), var(--b)); } .a { color: red; --g: 255; --rgb: rgb(var(--r), var(--g), var(--b)); color: var(--rgb); } .b { color: red; --g: 255; color: var(--rgb); } .a will be green, .b will be red. As far I understood the spec, both should be green.
Someone who is more familiar with the spec should confirm it.
Blocks: 773296
Status: NEW → UNCONFIRMED
Ever confirmed: false
Flags: needinfo?(cam)
(In reply to sjw from comment #0) > :root { > --r: 0; > --b: 0; > --rgb: rgb(var(--r), var(--g), var(--b)); > } Remember that variable substitution into variables happens *before* inheritance. (See the 'Computed value' line in http://dev.w3.org/csswg/css-variables/#defining-variables .) This means the root has variables --r and --b, but --rgb is not defined as a variable (per the rules on variable substitution it's invalid at computed value time, which is equivalent to being unset), because the reference to --g was not present. > .a { > color: red; > --g: 255; > --rgb: rgb(var(--r), var(--g), var(--b)); > color: var(--rgb); > } Here you're now defining --g, and defining a valid --rgb variable, so the element is green. > .b { > color: red; > --g: 255; > color: var(--rgb); > } > > .a will be green, .b will be red. b looks black to me. That's also what I expect, since --rgb is not a valid variable, which means the second color declaration her is invalid at computed value time and gets the initial value (black, per my preferences). So I think our behavior is correct.
Okay, I think I got it... Thank you very much for explaining this complex spec.
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Flags: needinfo?(cam)
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: