Re: [csswg-drafts] [css-overflow-4] Should abspos painting in line-clamp depend only on whether the containing block is before clamp? (#11962)

The CSS Working Group just discussed `[css-overflow-4] Should abspos painting in line-clamp depend only on whether the containing block is before clamp?`, and agreed to the following:

* `RESOLVED: An abspos is hidden by line-clamp only if its CB is fully below the clamp point`

<details><summary>The full IRC log of that discussion</summary>
&lt;TabAtkins> andreubotella: we previously resolved on abspos wrt compat behavior<br>
&lt;TabAtkins> andreubotella: in #11379<br>
&lt;TabAtkins> andreubotella: we show all abspos whose CB is the line-calmp container or a predecessor<br>
&lt;TabAtkins> andreubotella: we never resolved o nwhat to do for abspos whose CB is a descendant of the line-clamp container<br>
&lt;TabAtkins> andreubotella: we'd discussed it, just never resolved<br>
&lt;TabAtkins> andreubotella: when i was working on chrome impl, tests, and spec pr, i was trying to get as close to continue:discard as possible<br>
&lt;TabAtkins> andreubotella: and in that, if the CB is in a discarded fragment, the abspos wouldn't show up<br>
&lt;TabAtkins> andreubotella: so the behavior i'm ipmlementing is the abspos is hidden if its static position is below the clamp point<br>
&lt;TabAtkins> andreubotella: but Ian had a differetn udnerstanding, that an abspos is hidden if and only if its CB is fully below the clamp<br>
&lt;TabAtkins> andreubotella: that includes the previous resolution, and is also simpler to implement in chromium<br>
&lt;florian> q+<br>
&lt;emilio> q+<br>
&lt;TabAtkins> andreubotella: it's less similar to continue:discard, but considering we're dealing with webcompat i think it makes sense<br>
&lt;astearns> ack florian<br>
&lt;TabAtkins> florian: making sure i understand<br>
&lt;TabAtkins> florian: in both cases, we're talking only about abspos whose CB is a descendant of the clamp container<br>
&lt;TabAtkins> florian: other cases are handled already<br>
&lt;TabAtkins> florian: so q is if we hide the abpsos when its CB is after the clamp point, or static position is after<br>
&lt;TabAtkins> florian: if CB is after the clamp point, its static position is necessarily after too<br>
&lt;TabAtkins> florian: but reverse isn't necessarily true<br>
&lt;astearns> ack emilio<br>
&lt;TabAtkins> florian: CB might be (partially) above the clamp, but static posiition is after. that's the case, yeah?<br>
&lt;TabAtkins> andreubotella: correct<br>
&lt;TabAtkins> emilio: if the CB is another abspos that's already out of the question<br>
&lt;TabAtkins> emilio: so this is only if the CB is in-flow<br>
&lt;TabAtkins> emilio: if it's in-flow, proposal is that if the in-flow is completely clamped, you don't paint the abspos, otherwise you do<br>
&lt;TabAtkins> emilio: that seems sensible to me<br>
&lt;astearns> ack fantasai<br>
&lt;iank_> q+<br>
&lt;TabAtkins> florian: so in andreu's initial, if the CB was partially in and partially out, but the staticpos was out, you suppress<br>
&lt;TabAtkins> florian: but now if the CB is partialy in and partially out, you always paint the abspos<br>
&lt;astearns> ack iank_<br>
&lt;TabAtkins> fantasai: yeah, don't thinkwe should depend on static position unless it's staically positioned<br>
&lt;TabAtkins> iank_: i think we should indeed use this simple thing<br>
&lt;TabAtkins> iank_: removing static position is trivial, shoudln't depend on it<br>
&lt;TabAtkins> iank_: and anchorpos can depend on entirely differnt things, not caring about static poisition at all. shouldn't try and depend on that<br>
&lt;astearns> ack fantasai<br>
&lt;TabAtkins> fantasai: thinking about pagination, more interesting<br>
&lt;TabAtkins> fantasai: if doing some regions things, abspos containing block on second page with an abspos that positioned itself really far up, impls struggly with that. can't move to a previous page very well, but can push to next page<br>
&lt;TabAtkins> fantasai: so there's an inconsistency in pagination today. hope someday we can fix<br>
&lt;iank_> thats not strictly true for chromium's implementation.<br>
&lt;TabAtkins> fantasai: but for this case, i think it's reasonable to do a simpler appraoch - if something is discarded<br>
&lt;TabAtkins> florian: i think i largely agree, but in pagaintion i'm not clear this behavior is wholely wrong<br>
&lt;TabAtkins> florian: moving an abspos back to earlier pages when the CB is paginated should get right<br>
&lt;TabAtkins> florian: but if the CB is an inline on a later page, less convicned it's worthwhile to move to an earlier page<br>
&lt;TabAtkins> astearns: sounds like we ahve a resolution for this particular case<br>
&lt;fantasai> I think drawing outside the fragmentation container is wrong<br>
&lt;TabAtkins> andreubotella: proposed: an abspos is hidden if and only if its CB is fully after the clamp point<br>
&lt;fantasai> TabAtkins: IIRC, we do have the geometry of everything after the clamp point?<br>
&lt;fantasai> andreubotella:<br>
&lt;fantasai> andreubotella: yep<br>
&lt;fantasai> TabAtkins: So well-defined what the position of things is<br>
&lt;fantasai> andreubotella: but I wouldn't be sure that's true for 'continue: discard'<br>
&lt;TabAtkins> astearns: objections?<br>
&lt;TabAtkins> RESOLVED: An abspos is hidden by line-clamp only if its CB is fully below the clamp point<br>
&lt;TabAtkins> andreubotella: should this also apply to fixpos?<br>
&lt;TabAtkins> iank_: yeah they're the same<br>
&lt;TabAtkins> iank_: if there's a transformed ancestor, it's jsut a normal abspos<br>
</details>


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


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

Received on Wednesday, 2 April 2025 14:24:54 UTC