Skip to content

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

Closed
@Loirooriol

Description

@Loirooriol

::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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions