w3c / csswg-drafts

CSS Working Group Editor Drafts
https://drafts.csswg.org/
Other
4.43k stars 656 forks source link

[css-display] Clarify element tree definition #1810

Open Loirooriol opened 7 years ago

Loirooriol commented 7 years ago

CSS Display says

CSS takes a source document, organized as a tree of elements and text nodes, and renders it onto a canvas

This is confusing because the source document is organized as a DOM tree of DOM nodes. Not just elements and text nodes.

As far as I know, the CSS element tree is derived from the DOM tree as follows:

All of this should be properly defined in the spec.

fantasai commented 6 years ago

The existence and position of pseudo-elements in the tree is defined in Selectors L3 / CSS Pseudo-elements L4.

What aspects of the DOM are expected to be rendered is probably more a question for the DOM spec than for CSS: e.g. it should be their decision that child text nodes of elements should be rendered, but the contents of a comment node or processing instruction should not.

fantasai commented 6 years ago

CSS can in theory render all of it, but not being rendered is what makes a comment a comment--so that shouldn't be our decision.

Loirooriol commented 6 years ago

Well I don't mind if the decision of which CharacterData nodes should be rendered is deferred to the DOM spec. But I would like if all the algorithms for obtaining each tree from the previous one (DOM tree, flat tree, element tree, box tree, fragment tree) would be described in a single place. Possibly linking to some spec for details, like https://drafts.csswg.org/css-scoping/#flattening, which seems the only proper tree algorithm.

css-meeting-bot commented 6 years ago

The Working Group just discussed Clarify element tree definition, and agreed to the following:

The full IRC log of that discussion <dael> Topic: Clarify element tree definition
<dael> github: https://github.com/w3c/csswg-drafts/issues/1810
<dael> fantasai: Most information on how the DOM interaction is speced somewhere. It would be nice if we were more coherent and had an overview somewhere. But the interactions are defined so this is editorial issue
<dael> fantasai: I'm not sure what goes into display spec. We have to figure out how to fit all the parts together to make understandable.
<dael> fantasai: Proposal here is not to tackle that, but defer this and #2365 to later rather then block.
<dael> Rossen: Reasonable
<dael> Rossen: Other opinions?
<fantasai> s/I'm not sure what goes/I'm not even sure what parts go/
<dael> Rossen: Objections?
<dael> RESOLVED: Defer #1810 and #2365 to later