gecko-dev/testing/web-platform/tests/css/css-align/baseline-of-scrollable-1a.html
Daniel Holbert 4147f36107 Bug 969874: Make scrollable frames derive their baseline from their scrolled content (unless their display value is block-inside). r=mats
Before this patch, we made scrollable frames derive their baseline from their
margin-box, because that's what the spec requires for scrollable inline-block
boxes. However, the spec now singles out inline-block as a special case, and
other sorts of scrollable inline-level containers are supposed to derive their
baseline from the scrolled content. So, this patch makes us do that, with an
exception for scrollable inline-block boxes.

For more info about the block-inside special case, see the end of the "block
containers" chunk here: https://drafts.csswg.org/css-align/#baseline-export
(Though that spec text may be a bit too specific, per my spec issue at
https://github.com/w3c/csswg-drafts/issues/3611 -- that's why this patch checks
for block-inside rather than inline-block.)

Differential Revision: https://phabricator.services.mozilla.com/D18481

--HG--
extra : moz-landing-system : lando
2019-02-06 00:22:56 +00:00

58 lines
1.5 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>
CSS Test: baseline of scrollable element should be taken from its
contents. (Except if the scrollable element is an inline-block, which gets
baseline from its margin-box.)
</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-align/#baseline-export">
<link rel="match" href="reference/baseline-of-scrollable-1-ref.html">
<style>
.container {
overflow: hidden;
height: 50px;
width: 100px;
border-style: solid;
border-width: 2px 3px 4px 5px;
padding: 4px 5px 7px 8px;
margin: 1px 2px 3px 4px;
}
.inline-block {
display: inline-block;
}
.inline-flex {
display: inline-flex;
}
.inline-grid {
display: inline-grid;
}
</style>
</head>
<body>
Test passes if the a/b text aligns with the bottom margin-edge of the "block"
rect and baseline-aligns with the "flex" and "grid" text.
<br><br>
<!-- Note: for this first "inline-block" case, the element's baseline is
synthesized from its margin box. For the other cases, the element's
baseline is taken from its contents, i.e. the text inside of it. -->
a
<div class="container inline-block">block</div>
b
<br>
a
<div class="container inline-flex">flex</div>
b
<br>
a
<div class="container inline-grid">grid</div>
b
</body>
</html>