Re: [csswg-drafts] [css-position-3] Containing block of dialog fixed position children (#8040)

The CSS Working Group just discussed `[css-position-3] Containing block of dialog fixed position children`, and agreed to the following:

* `RESOLVED: Clarify that due to the box-tree reparenting, an ancestor outside the dialog can't be a fixpos CB for children of the dialog`

<details><summary>The full IRC log of that discussion</summary>
&lt;TabAtkins> smfr: If you have fixpos inside a dialog, and dialog is on top layer, what's the containing block of the fixpos?<br>
&lt;TabAtkins> smfr: Dialog can be abspos *or* fixpos itself<br>
&lt;TabAtkins> smfr: If dialog is abspos, what's the fixpos behavior when the user scrolls the document?<br>
&lt;TabAtkins> smfr: If dialog has a transformed ancestor, does that affect the containing block for the fixpos descendent?<br>
&lt;TabAtkins> smfr: Both of these are impacted by whether the dialog itself is a CB for the fixpos<br>
&lt;Rossen_> q?<br>
&lt;TabAtkins> smfr: The top layer is kinda viewport-like<br>
&lt;fantasai> chrishtr: Is there interop on this or not?<br>
&lt;fantasai> scribe+<br>
&lt;fantasai> emilio: I think we don't enforce dialog to be a fixedpos dialog, but we want to<br>
&lt;fantasai> emilio: the containing block chain is pretty weird otherwise<br>
&lt;chrishtr> I don't think chromium makes dialog a containing block either<br>
&lt;fantasai> emilio: or at least we need to spec that any fixedpos inside the top layer are also in the top layer<br>
&lt;fantasai> emilio: otherwise, breaks the assumption that the containing block ... the in-flow content is laid out before the fixedpos<br>
&lt;fantasai> emilio: so unclear how the hypothetical positoins work if you don't at least define that they go in the top layer as well<br>
&lt;fantasai> emilio: in that case might want to make the dialog a containing block as well, much easier<br>
&lt;fantasai> emilio: don't see the point to have a fixedpos and not want it in teh top layer<br>
&lt;TabAtkins> fantasai: I think making it in the top laye rmakes sense<br>
&lt;TabAtkins> fantasai: I can imagine that you might not want the dialog to be a fixpos CB<br>
&lt;Rossen_> ack fantasai<br>
&lt;TabAtkins> fantasai: because you might actually want something outside the dialog wrt the viewport, while ahving the dialog open. can def imagine that<br>
&lt;TabAtkins> emilio: At that point we've given a special way to put something in the top layer...<br>
&lt;fantasai> TabAtkins: what's the concern about puttin gin the top layer? dialog is already there<br>
&lt;TabAtkins> emilio: It might be fine, I need to think more about ti<br>
&lt;TabAtkins> chrishtr: Seems like it'll be okay to me<br>
&lt;TabAtkins> chrishtr: The fixpos goes in the top layer, and if the dialog scrolls the fixpos won't scroll with it<br>
&lt;TabAtkins> chrishtr: That seems doable and not problematic; I assume that's how browsers would automatically work<br>
&lt;TabAtkins> smfr: What do you mean by "in the top layer"?<br>
&lt;TabAtkins> chrishtr: z-order<br>
&lt;TabAtkins> smfr: This is about CB, not painting order<br>
&lt;TabAtkins> chrishtr: Right, if the fixpos has a transformed ancestor within the dialog, that'll trap the fixpos as normal. If the transformed ancestor is outside the dialog, it won't affect it - it's specified as reparenting in the rendering tree.<br>
&lt;TabAtkins> smfr: So if you ahve a nested set of position:fixed do they all go in the top layer?<br>
&lt;masonf> q?<br>
&lt;TabAtkins> chrishtr: top layer is just reparenting and stacking context, it doesn't affect the CB<br>
&lt;TabAtkins> chrishtr: Maybe we should make some demos and come back to the group<br>
&lt;TabAtkins> Rossen_: sounds reasonable<br>
&lt;TabAtkins> Rossen_: k let's collect some examples in the issue<br>
&lt;TabAtkins> emilio: I think there's consensus that a transformed ancestor of the dialog isn't a CB for the fixpos, due to the reparenting.<br>
&lt;TabAtkins> proposed resolution: Clarify that due to the box-tree reparenting, an ancestor outside the dialog can't be a fixpos CB for children of the dialog<br>
&lt;emilio> +1<br>
&lt;fantasai> wfm<br>
&lt;fantasai> s/children/descendants/<br>
&lt;masonf> +1<br>
&lt;chrishtr> +1<br>
&lt;TabAtkins> RESOLVED: Clarify that due to the box-tree reparenting, an ancestor outside the dialog can't be a fixpos CB for children of the dialog<br>
&lt;TabAtkins> (Still unresolved: what exactly the CB of a fixpos descendant of the dialog is.)<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/8040#issuecomment-1431737145 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 15 February 2023 17:24:50 UTC