- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 29 Aug 2013 16:33:47 -0700
- To: Cameron McCormack <cam@mcc.id.au>
- Cc: www-style list <www-style@w3.org>
On Tue, Aug 27, 2013 at 5:18 PM, Cameron McCormack <cam@mcc.id.au> wrote: > (Sorry for using "[css-om]" rather than "[cssom]" in the subject of my > previous mail.) > > Consider: > > <style> > p { > var-a: url("a") green; > background-color: red; > background: var(a); > } > </style> > <script> > var decl = document.styleSheets[0].cssRules[0].style; > alert(decl.getPropertyValue("background-color")); > </script> > > What should be alerted? > > Conceptually, I think of 'background-color' having a specified value of > something like 'extract-background-color( var(a))'. Setting 'background' > overrides whatever value was given to 'background-color' earlier in the > declaration. > > Chrome alerts "red", but that's misleading, since 'background-color' is > overridden. My WIP patches for Firefox return " var(a)" but that's also not > right. > > I'd be happy with returning an empty string, in lieu of anything more > useful. I answered this same question when raised by someone else last February: <http://lists.w3.org/Archives/Public/www-style/2013Feb/0636.html> I said I'd edit it in, and then failed to do so. It's *actually* edited in now. ^_^ (The answer is "" for your code. If you called getComputedStyle(), it would be "green".) > Now, what do we alert with this: > > alert(decl.getPropertyValue("background")); > > I would expect " var(a)", and that is what Chrome and my WIP patches return. > CSSOM defines getPropertyValue with a shorthand property to concatenate all > of the longhand property values from the declaration though, which won't get > you the right result. I think shorthands with variable references need to > be treated specially here. Defined! If serializing a shorthand would involve building it out of a longhand that's still pending its value, you instead serialize it as its original value. ~TJ
Received on Thursday, 29 August 2013 23:34:34 UTC