- From: Aleksandar Totic via GitHub <sysbot+gh@w3.org>
- Date: Tue, 22 Dec 2020 07:55:59 +0000
- To: public-css-archive@w3.org
atotic has just created a new issue for https://github.com/w3c/csswg-drafts:
== Algorithm for computing GRID_MIN from column %ge size is not well defined ==
https://www.w3.org/TR/css-tables-3/#computing-the-table-width
Compute standard GRID_MIN/GRID_MAX.
Standard does not specify in detail how to handle column percentages.
"a percentage represents a constraint on the column's inline size, which a
UA should try to satisfy"
While reimplementing tables in Chrome, I've discovered that following
algorithm works:
Percentages cannot be resolved into pixels because size of containing
block is unknown. Instead, percentages are used to enforce following
constraints:
1) Column min inline size and percentage imply that total inline sum must
be large enough to fit the column. Mathematically, column with
min_inline_size of X, and percentage Y% implies that the
total inline sum MINSUM must satisfy: MINSUM * Y% >= X.
2) Let T% be sum of all percentages. Let M be sum of min_inline_sizes of
all non-percentage columns. Total min size sum MINSUM must satisfy:
T% * MINSUM + M = MINSUM.
All major browsers (more or less) implement this the same way. I think standard should specify relationship between GRIDMIN/MAX and column percentages in detail.
#### There is a further issue with flex/grid/table cell ancestors:
The formula above can result in very large table minimum widths. For example:
<table>
<td style="width:1%"><div style="width:50px"></div></td>
</table>
would result in 5000px GRIDMIN.
This works in block layout, because block layout forces table to never be wider than container width.
If table is a flex/grid child, this would result in a 5000px wide table, which is not what developers expect.
Major browsers have recognized this as a problem, and implemented non-standardized workarounds.
Most of the workarounds are a variation of
"if table ancestor is flex/grid/table cell, ignore column percentages when computing GRIDMIN"
This exception should also be part of the standard.
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5816 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 22 December 2020 07:56:01 UTC