[csswg-drafts] [css-display][css-pseudo] Is ::marker created by display:list-item or does it always exist?

Loirooriol has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-display][css-pseudo] Is ::marker created by display:list-item or does it always exist? ==
`::before` and `::after` pseudo-elements always exist in the element tree, but most times they don't generate boxes in the box tree because `content` computes to `none` by default.

Is it similar for `::marker` pseudo-elements? Do they always exist, but they only generate boxes if the `display` of the originating element has the `list-item` keyword? Or do `::marker` pseudo-elements only exist if the originating element has the `list-item` keyword?

CSS Display handwaves the difference between the `::marker` pseudo-element and the marker box generated by it, so it's not clear. CSS Pseudo isn't clear either.

The difference matters because Firefox and Chrome allow `::marker` pseudo-elements to be originated by some tree-abiding pseudo-elements. So if `::marker` always exist, this could potentially mean that the element tree has an infinite depth, which doesn't sound much right.

I see various possibilities:

 - `::marker` pseudo-elements are only created when `display` has the `list-item` keyword.
 - `::marker` always exist but are only originated by elements, `::before`, and `::after`. They can't be originated by other `::marker`.
 - `::marker` always exist but are only originated by elements. Like `::before` and `::after`, they can't be originated by other pseudo-elements. This would be a breaking change for Firefox and Chrome.
 - `::marker` always exist and can be originated by elements or any tree-abiding pseudo-elements. The element tree has an infinite depth, but in practice this isn't much problematic because the box tree is finite.




Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1793 using your GitHub account

Received on Sunday, 10 September 2017 19:13:32 UTC