Re: [css-position-3] Rewrite Completed

> On Apr 29, 2020, at 11:41, fantasai <fantasai.lists@inkedblade.net> wrote:
> 
> Hi everyone,
> Tab and I finished a complete rewrite of the CSS Positioning Level 3 spec today. There are no new features, but we integrated it with the current state of css-align-3 and css-writing-modes-3 and referenced css-display-3 and css-sizing-3 where appropriate. We left the old abspos layout chapter intact as a reference for now: there should be no change in behavior in the default writing-mode + self-alignment case.
> 
> We'd like to publish an updated Working Draft after everyone has a chance to review and flag any obvious errors.
> 
> I'm hoping by tomorrow the draft server will finish rebuilding [1], but for now you can view the draft here:
>  https://lists.w3.org/Archives/Public/www-archive/2020Apr/att-0006/Overview.html
> 
> [1] https://drafts.csswg.org/css-position-3/

Nice!

From an editorial standpoint, I like it a lot. Well done! For a correctness standpoint, it looks right on a first read, but we all should certainly spend some time looking at it closely; some of this is very subtle.

Here are a few comments/suggestions, all in one place for now, in case you find a number of them easy to just fix without further debate, but for anything you think needs substantial discussion, I'm happy to move to github.

* Throughout the document, linkify "out of flow"

* in the definition of sticky positioning, there's "in whichever axes the inset properties are not both auto". Negated conjunctions are confusing, and sticky positioning isn't easy. Maybe just skip that part of the sentence, and defer details to the later section on sticky positioning instead of providing a terse but hard to grok summary.

* I think that "fixed positioning containing block" is new terminology. It seems to me that css-contain (level 2) should be updated to use it, and maybe there could be a note in css-positioning pointing to layout and paint containment. I don't recall anything else creating "fixed positioning containing block", but if there's such a thing, it'd be nice to mention it in that note as well.

* Section 3.4 on sticky positioning is really dense. It looks right, but I found this to be the part of the document I had to re-read the most to convince myself I understood what it meant. I don't have any particular advice as to how to make it better just yet, but I think we should try to improve it some more, because as it is, it's hard. Until something more profound, a couple of minor tweaks:
  - within that section, linkify "scrollport"
  - "then the effective end-edge inset in the affected axis is reduced<ins>, possibly becoming negative if necessary,</ins> to bring the sticky view rectangle’s size up to the size of the border box in that axis"

* In section 3.5 on absolute positioning:
  - a couple of things aren't cross-linking properly: "self-start", "self-end"
  - "then the weaker inset in the affected axis is reduced<ins>, possibly becoming negative if necessary,</ins> to bring that size up to zero."

* In section 3.6 on Fixed positioning: unlike the definition of fixed positioning in 2 and 2.1, this does not use the " fixed positioning containing block" term, and just directly talks about the viewport and the page area. It should use that term, and say that  viewport and the page area are the "fixed positioning containing block", unless some closer ancestor of the positioned element establishes another one (which css-contain can do). It could be worth accompanying that with a note that very few things establish one of those, so it's almost always the viewport/page area.

* In section 6, linkify "absolute positioning" in the first sentence

* This spec used to speak more of floats, and this latest revision doesn't anymore, except in section 2 and 5 to define the interaction between the float, display, and position properties, and in 3.5.1. to talk about resolving automatic insets. That's good, as this isn't a float spec. But then it feels like section 6.3 which gives a generic example about floats and clearance, without any interaction with positioning, is out of place, and should be removed as well.

—Florian

Received on Wednesday, 29 April 2020 08:28:21 UTC