Re: [csswg-drafts] [css-align] Special case for inline-block+scroll-container elements needs to cover inline blocks that **contain** scroll containers (#3611)

Okay, edits were made in 7a66d53f693c973ac1f87993f6a42c88b21980dd (paired with 3bd261f0b92c7087640b6249e8f865f0ba9ccb6d to clarify exactly when baselines are synthesized). After puzzling over Elika's testcase a bit (now captured in the repo at <https://drafts.csswg.org/css-align-3/baseline-align-test>), we realized the actual behavior here is *weird* but *interoperable*:

* block-containers that are scrollable *have* a last baseline set, all of which are set to be the bottom margin edge of the box. (This is *different* from normal synthesis rules; in particular, the central baseline is also the bottom margin edge, rather than halfway between the top and bottom margin edge.)
 
 You can see the difference from your suggested "block container containing only a scroll container" by looking at cases B (inline-block scroll container) and I (inline-block containing only a scroll container) in Elika's testcase - these correspond to the two boxes in (your testcase from the first comment](https://hg.mozilla.org/mozilla-central/raw-file/2064e7c799d2/layout/reftests/inline/inline-block-baseline.html). Your testcase didn't give the wrapper inline-block any dimensions, so it couldn't tell the difference between the two cases like Elika's can - if everything has borders, you can clearly see that it *does* baseline-align to the child scroller, not the inline-block wrapper.

* block-containers that are scrollable *do not have* a **first** baseline set. Again look at cases B and I, but for the table/flex rows - in both cases, the outermost element is synthesizing a baseline from its box.



-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3611#issuecomment-620778476 using your GitHub account

Received on Tuesday, 28 April 2020 18:26:30 UTC