- From: Daniel Holbert via GitHub <sysbot+gh@w3.org>
- Date: Tue, 18 Apr 2023 18:38:48 +0000
- To: public-css-archive@w3.org
Here's a concrete example of where a browser implementing the spec might present a webcompat issue:
https://bug1368592.bmoattachments.org/attachment.cgi?id=9329106
```html
<style>
.c {
display: inline-flex;
flex-direction: column;
width: 100px;
min-height: 100px;
/* important: height is unspecified, which gives special significance
to 0% height values on our children (e.g. implicit flex-basis:0%) */
border: 1px solid black;
}
.c > * {
min-height: 5px;
background: orange;
}
.flex0 { flex: 0; }
.flex0_0 { flex: 0 0; /* note: 2nd unitless-0 just parses as flex-shrink */ }
.flex0_0pct { flex: 0 0%; }
.flex0_0px { flex: 0 0px; }
.flex0_0_0 { flex: 0 0 0; }
</style>
<div class="c"><div class="flex0">flex:0</div></div>
<div class="c"><div class="flex0_0">flex:0 0</div></div>
<div class="c"><div class="flex0_0pct">flex:0 0%</div></div>
<div class="c"><div class="flex0_0px">flex:0 0px</div></div>
<div class="c"><div class="flex0_0_0">flex:0 0 0</div></div>
```
Here's a screenshot showing how that testcase renders in current WebKit / Blink / Gecko:

In the first two boxes in the testcase, the orange background (the flex item) renders as tall as its text, by virtue of the fact that browsers are interpreting the `flex` expression as implying `flex-basis:0%`, and browsers are then resolving the 0% to `content` due to the indefinite size of the flex container.
If we implement the spec change and use unitless `0` (i.e. `0px`) instead, then browsers would render the first two boxes the same way that they render the last two boxes, with a collapsed flex item height. This may cause webcompat issues, particularly in cases where the flex item has `overflow:hidden|scroll|auto` and collapses away without overflow being visible.
--
GitHub Notification of comment by dholbert
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5742#issuecomment-1513632087 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 18 April 2023 18:38:50 UTC