- From: Xidorn Quan via GitHub <sysbot+gh@w3.org>
- Date: Wed, 11 Jan 2017 05:18:51 +0000
- To: public-css-archive@w3.org
upsuper has just created a new issue for
https://github.com/w3c/csswg-drafts:
== [cssom][css-variables] Whitespaces in serialization of custom
property value and value with variable reference ==
It is currently not clear how whitespaces should be handled in
serialization of value of custom property and value of normal property
but with varible reference.
For example, if I have the following style rule:
```css
div {
--a:␣␣x␣␣y␣␣;
display:␣␣var(--x)␣␣var(--y)␣␣;
}
```
what should the result of `rule.style.getPropertyValue('--a')` and
`rule.style.display`?
Currently, browsers don't agree on the same behavior.
Gecko preserves all whitespaces for both cases, so
* `rule.style.getPropertyValue('--a')` -> `␣␣x␣␣y␣␣`
* `rule.style.display` -> `␣␣var(--x)␣␣var(--y)␣␣`
Blink strips preceding whitespaces for normal property value, and
collapses continuous whitespaces into one, so:
* `rule.style.getPropertyValue('--a')` -> `␣x␣y␣`
* `rule.style.display` -> `var(--x)␣var(--y)␣`
Since they are both sequences of tokens, Blink's behavior looks
inconsistent to itself. Given that we want to preserve whitespaces for
value of custom properties, I suggest we state explicitly that
preceding whitespaces of property value with variable reference should
be preserved as well.
As of whether continuous whitespaces should be collapsed into one, I
don't have strong opinion on. It seems to me collapsing them would add
an unnecessary pass for us, I tend to not do that. But I'm open to
collapsing behavior or making it unspecified explicitly.
Also note that, the serialization algoritm for "serialize a CSS
declaration" also needs to adjust accordingly, because it currently
unconditionally appends a whitespace after colon, and prepends a
whitespace before `!important`, which would make `cssText` not
idempotent when value includes preceding or trailing whitespaces. I
propose that we don't add whitespaces if the value is a sequence of
tokens.
Please view or discuss this issue at
https://github.com/w3c/csswg-drafts/issues/881 using your GitHub
account
Received on Wednesday, 11 January 2017 05:18:57 UTC