- From: Andreu Botella via GitHub <noreply@w3.org>
- Date: Fri, 20 Jun 2025 11:35:15 +0000
- To: public-css-archive@w3.org
We had resolved that if the last thing that fits in the height is not a line, the ellipsis shouldn't be drawn on that line. But I don't think block-level abspos should count as "a thing" there.
Consider the following example.
```css
.clamp-by-lines {
line-clamp: 2;
}
.clamp-by-height {
line-clamp: auto;
max-height: 2lh;
}
.abspos {
position: absolute;
top: 0;
width: 50px;
height: 50px;
background-color: purple;
}
```
```html
<div class="clamp-by-lines">
<p>Line 1</p>
<p>Line 2</p>
<div class="abspos"></div>
<p>Line 3</p>
</div>
```
With `.clamp-by-lines`, the clamp point happens right after line 2, so that line gets the ellipsis; and the `.abspos` is after the clamp point but it still shows up because of #11379. However, if we instead set the `.clamp-by-height` class, the clamp point would be after the `.abspos` (since it takes up zero height in-flow), and therefore that would be "the last thing before the clamp point", meaning that line 2 would *not* have the ellipsis.
I think this behavior is unintuitive, and therefore we should either clamp after the last thing other than a block-level abspos that fits in the height, or to ignore immediately following block-level abspos when determining whether a line has the ellipsis (which should have the exact same behavior). But if we instead wrap the abspos in a relative div (which would still be zero-size), that would count as the last thing, and no line would have an ellipsis.
--
GitHub Notification of comment by andreubotella
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10868#issuecomment-2991132884 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Friday, 20 June 2025 11:35:16 UTC