fune/testing/web-platform/tests/css/css-overflow/reference/line-clamp-with-floats-010-ref.html
Andreu Botella a08edbdf3c Bug 1891445 [wpt PR 45709] - [line-clamp] Make line-clamp create a new BFC, a=testonly
Automatic update from web-platform-tests
[line-clamp] Make `line-clamp` create a new BFC

Although `-webkit-line-clamp` has always created an independent
formatting context, our prototype implementation of `line-clamp`
initially made it so the `line-clamp` property (but not
`-webkit-line-clamp`) didn't necessarily create one.

However, in the course of implementing this proposal, the fact that it
did not necessarily create a new BFC raised issues, such as how nested
line-clamps should work, or how floats inside a line-clamp container
should affect floats outside it. These problems go away by having
line-clamp create a new BFC, and this CL takes that route.

This patch also removes
`BlockLineClampData::is_original_line_clamp_context`, which was needed
to be able to distinguish whether `(-webkit-)line-clamp` was specified
on the current block element, or whether it inherited its line clamp
data from its parent. With this change, checking if the current block
is a new BFC is enough.

Bug: 40336192
Change-Id: I8a16ec18ce1653caaf1c7d06280a2a7e4604a946
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5453431
Commit-Queue: Andreu Botella <abotella@igalia.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1287280}

--

wpt-commits: 85681c669ff292c3c55bd088bf13fd0cc038d7bd
wpt-pr: 45709
2024-04-19 07:34:54 +00:00

37 lines
706 B
HTML

<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Reference</title>
<style>
#scrollContainer {
overflow: scroll;
font: 16px / 32px serif;
height: 4lh;
border: 1px solid black;
}
.clamp {
display: flow-root;
padding: 0 4px;
white-space: pre;
background-color: yellow;
}
.float {
float: left;
width: 50px;
height: 50px;
margin: 4px;
background-color: skyblue;
}
</style>
<div id="scrollContainer">
<div class="clamp">Line 1
Line 2
Line 3
Line 4…<div class="float"></div></div>
<script>
window.addEventListener("load", () => {
const scrollContainer = document.getElementById("scrollContainer");
scrollContainer.scrollTop = scrollContainer.scrollHeight;
});
</script>