- From: Emilio Cobos Álvarez via GitHub <sysbot+gh@w3.org>
- Date: Mon, 23 Oct 2017 05:42:33 +0000
- To: public-css-archive@w3.org
emilio has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-logical-1] [css-cascade-3] The all longhand probably shouldn't set logical properties. ==
Or if it should, order of the expansion of `all` should be specified.
>From https://drafts.csswg.org/css-cascade-3/#all-shorthand:
> The all property is a shorthand that resets all CSS properties except direction and unicode-bidi. It only accepts the CSS-wide keywords.
This includes logical properties, and this is a problem because that means that it produces unexpected results when used from CSSOM (where the position a property declaration appears on matters).
In particular, we came across https://bugzilla.mozilla.org/show_bug.cgi?id=1410028, which happens because of the internal order the properties are reset.
In particular, it's not the same if `all` expands to:
```
padding-inline-start: initial;
padding-left: initial;
```
that if it expands the other way around.
i.e., this two pieces of code should be equivalent:
```html
<!doctype html>
<script>
let setStyle = (el, props) => {
for (prop in props)
el.style.setProperty(prop, props[prop]);
};
let logical = document.createElement('div');
let physical = document.createElement('div');
setStyle(physical, {
all: 'initial',
'background-color': 'blue',
display: 'block',
width: '100px',
height: '100px',
padding: '10px'
});
setStyle(logical, {
all: 'initial',
'background-color': 'blue',
display: 'block',
width: '100px',
height: '100px',
'padding-inline-start': '10px',
'padding-inline-end': '10px',
'padding-block-start': '10px',
'padding-block-end': '10px'
});
document.documentElement.appendChild(physical);
document.documentElement.appendChild(logical);
</script>
```
But they aren't.
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1898 using your GitHub account
Received on Monday, 23 October 2017 05:42:39 UTC