- From: Simon Pieters <simonp@opera.com>
- Date: Mon, 08 Sep 2014 09:32:21 +0200
- To: "www-style list" <www-style@w3.org>, "Mike Sherov" <mike.sherov@gmail.com>
- Cc: "L. David Baron" <dbaron@dbaron.org>
On Mon, 08 Sep 2014 05:19:12 +0200, Mike Sherov <mike.sherov@gmail.com>
wrote:
> Apologies if I've overlooked something, but it appears from the spec
> that there is no single method that can be invoked on an elements style
> declaration to change it from (e.g.) "color: red !important" to "color:
> black".
> Step 3 of http://dev.w3.org/csswg/cssom/#append-a-css-declaration says:
> "If declaration has its important flag set and the important flag is not
> set, terminate these steps."
>
>
> It seems that in order to change from "color: red !important;" to
> "color: black;", one should be able to say "elem.style.color = 'black';"
> or at the very least "elem.style.setProperty('color', 'black', '');"
>
>
> However, the way the spec is written (and the way all but FF implement),
> the following is required: "elem.style.setPropertyPriority('');
> elem.style.setPropertyValue('black');"
>
>
> What's the reason for this termination step and not allowing for
> elem.style.setProperty('color', 'black', ''); to work once the important
> flag has been set on a declaration?
https://www.w3.org/Bugs/Public/show_bug.cgi?id=23066
The idea is that your mental model should be that setProperty('color',
'black', '') is equivalent to appending a color:black; declaration to the
style rule, which doesn't win over the !important one.
> Can this be changed?
If you can convince David Baron... :-)
--
Simon Pieters
Opera Software
Received on Monday, 8 September 2014 07:32:52 UTC