E844 [css-tables] Rename and clarify intermidiate widhts for columns; fix … · simonwuelker/csswg-drafts@eb2ec5d · GitHub
Skip to content

Commit eb2ec5d

Browse files
committed
[css-tables] Rename and clarify intermidiate widhts for columns; fix w3c#1687; fix w3c#1686
1 parent ab8cf47 commit eb2ec5d

1 file changed

Lines changed: 64 additions & 64 deletions

File tree

css-tables-3/Overview.bs

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1271,10 +1271,16 @@ spec:filter-effects-1; type:property; text:filter
12711271
<!--——————————————————————————————————————————————————————————————————————————-->
12721272
<h4 id="computing-column-measures">Computing Column Measures</h3>
12731273

1274-
This subsection defines terms for various parameters associated with each column of a table.
1275-
These parameters are used in the following two subsections as part of
1276-
the rules for computing intrinsic widths of tables and
1277-
computing the column widths of a table.
1274+
This subsection defines three important values associated with each column of a table:
1275+
their <a href="#min-content-width-of-a-column">min-content width</a> (the smallest possible width attributed to this column),
1276+
their <a href="#max-content-width-of-a-column">max-content width</a> (the width that would be attributed to the column if no other constraint applied),
1277+
their <a href="#intrinsic-percentage-width-of-a-column">intrinsic percentage width</a> (the percentage of the table width the column desires to get, and could end up overriding its max-content width).
1278+
1279+
<p class="note">
1280+
To compute these values, an iterative algorithm is used.
1281+
First, these values are computed ignoring any cell spanning more than one column.
1282+
Then, these values are updated by taking into account cells spanning incrementally more columns.
1283+
When cells that spanned all columns of the table have been considered, this algorithm ends and the values are then finalized.
12781284

12791285
<p class="advisement">
12801286
For the purpose of measuring a column when laid out <a>in fixed mode</a>,
@@ -1294,60 +1300,60 @@ spec:filter-effects-1; type:property; text:filter
12941300

12951301
<dl>
12961302
<!--——————————————————————————————————————————————————————————————————————————-->
1297-
<dt><dfn>intermediate min-content width for span 1</dfn></dt>
1303+
<dt><dfn>min-content width of a column based on cells of span up to 1</dfn></dt>
12981304
<dd>The largest of:
12991305
<ul>
13001306
<li>the width specified for the column:<ul>
1301-
<li>the outer min-content width of the column, if any (and not auto)
1302-
<li>the outer min-content width of the column group, if any
1307+
<li>the <a>outer min-content</a> width of its corresponding table-column, if any (and not auto)
1308+
<li>the <a>outer min-content</a> width of its corresponding table-column-group, if any
13031309
<li>or 0, if there is none
13041310
</ul>
1305-
<li>the outer min-content width of each cell that <a>spans</a> the column whose <a href="#slot">colSpan</a> is 1
1311+
<li>the <a>outer min-content</a> width of each cell that <a>spans</a> the column whose <a href="#slot">colSpan</a> is 1
13061312
(or just the one in the first row <a>in fixed mode</a>)
13071313
or 0 if there is none
13081314
</ul>
13091315

13101316
<!--——————————————————————————————————————————————————————————————————————————-->
1311-
<dt><dfn>intermediate max-content width for span 1</dfn></dt>
1317+
<dt><dfn>max-content width of a column based on cells of span up to 1</dfn></dt>
13121318
<dd>The largest of:
13131319
<ul>
1314-
<li>the outer max-content width of the column group, if any
1315-
<li>the outer max-content width of the column, if any
1316-
<li>the outer max-content width of each cell that <a>spans</a> the column whose <a href="#slot">colSpan</a> is 1
1320+
<li>the <a>outer max-content</a> width of its corresponding table-column-group, if any
1321+
<li>the <a>outer max-content</a> width of its corresponding table-column, if any
1322+
<li>the <a>outer max-content</a> width of each cell that <a>spans</a> the column whose <a href="#slot">colSpan</a> is 1
13171323
(or just the one in the first row if <a>in fixed mode</a>)
13181324
or 0 if there is no such cell
13191325
</ul>
13201326

13211327
<!--——————————————————————————————————————————————————————————————————————————-->
1322-
<dt><dfn>intermediate intrinsic percentage width for span 1</dfn></dt>
1328+
<dt><dfn>intrinsic percentage width of a column based on cells of span up to 1</dfn></dt>
13231329
<dd>The largest of the percentage contributions of
13241330
each cell that <a>spans</a> the column whose <a href="#slot">colSpan</a> is 1,
1325-
of the column (if any), and
1326-
of the column group (if any)
1331+
of its corresponding table-column (if any), and
1332+
of its corresponding table-column-group (if any)
13271333

13281334
<!--——————————————————————————————————————————————————————————————————————————-->
1329-
<dt><dfn>intermediate min-content width for span N (N > 1)</dfn></dt>
1330-
<dd>the largest of the intermediate min-content width for span N-1 and the contributions
1335+
<dt><dfn>min-content width of a column based on cells of span up to N (N > 1)</dfn></dt>
1336+
<dd>the largest of the min-content width of the column based on cells of span up to N-1 and the contributions
13311337
of the cells in the column whose <a href="#slot">colSpan</a> is N,
13321338
where the contribution of a cell is the result of taking the following steps:
13331339
<ol>
1334-
<li>Define the baseline (min-content / max-content) width
1335-
as the sum of the intermediate (min-content / max-content) widths
1336-
for span N-1 of all columns that the cell spans.
1340+
<li>Define the baseline min-content width
1341+
as the sum of the max-content widths based on cells of span up to N-1
1342+
of all columns that the cell spans.
13371343

13381344
<li>Define the baseline border spacing as the sum of the horizontal
13391345
border-spacing for any columns spanned by the cell,
13401346
other than the one in which the cell originates.
13411347

13421348
<li>The contribution of the cell is the sum of:
13431349
<ul>
1344-
<li>the min-content width of the column for span N-1
1350+
<li>the min-content width of the column based on cells of span up to N-1
13451351
<li>the product of:
13461352
<ul>
13471353
<li>the ratio of:
13481354
<ul>
1349-
<li>the intermediate max-content width for span N-1 of the column
1350-
minus the intermediate min-content width for span N-1 of the column, to
1355+
<li>the max-content width of the column based on cells of span up to N-1 of the column
1356+
minus the min-content width of the column based on cells of span up to N-1 of the column, to
13511357
<li>the baseline max-content width minus the baseline min-content width
13521358
</ul>
13531359
or zero if this ratio is undefined, and
@@ -1359,8 +1365,8 @@ spec:filter-effects-1; type:property; text:filter
13591365
</ul>
13601366
<li>the product of:
13611367
<ul>
1362-
<li>the ratio of the intermediate max-content width
1363-
for span N-1 of the column to the baseline max-content width
1368+
<li>the ratio of the max-content width
1369+
based on cells of span up to N-1 of the column to the baseline max-content width
13641370
<li>the outer min-content width of the cell
13651371
minus the baseline max-content width and baseline border spacing,
13661372
or 0 if this is negative
@@ -1369,14 +1375,14 @@ spec:filter-effects-1; type:property; text:filter
13691375
</ol>
13701376

13711377
<!--——————————————————————————————————————————————————————————————————————————-->
1372-
<dt><dfn>intermediate max-content width for span N (N > 1)</dfn></dt>
1373-
<dd>The largest of the intermediate max-content width
1374-
for span N-1 and the contributions of the cells in the column whose <a href="#slot">colSpan</a> is N,
1378+
<dt><dfn>max-content width of a column based on cells of span up to N (N > 1)</dfn></dt>
1379+
<dd>The largest of the max-content width
1380+
based on cells of span up to N-1 and the contributions of the cells in the column whose <a href="#slot">colSpan</a> is N,
13751381
where the contribution of a cell is the result of taking the following steps:
13761382
<ol>
13771383
<li>Define the baseline max-content width as
1378-
the sum of the intermediate max-content widths
1379-
for span N-1 of all columns that the cell spans.
1384+
the sum of the max-content widths based on cells of span up to N-1
1385+
of all columns that the cell spans.
13801386

13811387
<li>Define the baseline border spacing as
13821388
the sum of the horizontal border-spacing
@@ -1385,11 +1391,11 @@ spec:filter-effects-1; type:property; text:filter
13851391

13861392
<li>The contribution of the cell is the sum of:
13871393
<ul>
1388-
<li>the max-content width of the column for span N-1
1394+
<li>the max-content width of the column based on cells of span up to N-1
13891395
<li>the product of:
13901396
<ul>
1391-
<li>the ratio of the intermediate max-content width
1392-
for span N-1 of the column to the baseline max-content width
1397+
<li>the ratio of the max-content width
1398+
based on cells of span up to N-1 of the column to the baseline max-content width
13931399
<li>the outer max-content width of the cell
13941400
minus the baseline max-content width and the baseline border spacing,
13951401
or 0 if this is negative
@@ -1399,45 +1405,46 @@ spec:filter-effects-1; type:property; text:filter
13991405

14001406

14011407
<!--——————————————————————————————————————————————————————————————————————————-->
1402-
<dt><dfn>intermediate intrinsic percentage width for span N (N > 1)</dfn></dt>
1403-
<dd>If the intermediate intrinsic percentage width for span N-1 is greater than 0%,
1404-
then the intermediate intrinsic percentage width for span N is
1405-
the same as the intermediate intrinsic percentage width for span N-1.<br/>
1408+
<dt><dfn>intrinsic percentage width of a column based on cells of span up to N (N > 1)</dfn></dt>
1409+
<dd>If the intrinsic percentage width of a column based on cells of span up to N-1 is greater than 0%,
1410+
then the intrinsic percentage width of the column based on cells of span up to N is
1411+
the same as the intrinsic percentage width of the colu 6E4D mn based on cells of span up to N-1.<br/>
14061412
<br/>
14071413
Otherwise, it is the largest of the contributions of the cells in the column
14081414
whose <a href="#slot">colSpan</a> is N,
14091415
where the contribution of a cell is the result of taking the following steps:
14101416
<ol>
14111417
<li>Start with the percentage contribution of the cell.
1412-
<li>Subtract the intermediate intrinsic percentage width for span N-1 of all columns that the cell spans.
1418+
<li>Subtract the intrinsic percentage width of the column based on cells of span up to N-1 of all columns that the cell spans.
14131419
If this gives a negative result, change it to 0%.
14141420
<li>Multiply by the ratio of
14151421
<ul>
14161422
<li>the column's non-spanning max-content width to
14171423
<li>the sum of the non-spanning max-content widths of all columns spanned by the cell
1418-
that have an intermediate intrinsic percentage width for span N-1 equal to 0%.
1424+
that have an intrinsic percentage width of the column based on cells of span up to N-1 equal to 0%.
14191425
</ul>
14201426
However, if this ratio is undefined because the denominator is zero,
14211427
instead use the 1 divided by the number of columns spanned by the cell
1422-
that have an intermediate intrinsic percentage width for span N-1 equal to zero.
1428+
that have an intrinsic percentage width of the column based on cells of span up to N-1 equal to zero.
14231429
</ol>
14241430

14251431
<!--——————————————————————————————————————————————————————————————————————————-->
1426-
<dt><dfn>min-content width</dfn></dt>
1427-
<dd>the intermediate min-content width for span N, where N is the number of columns in the table
1432+
<dt><dfn>min-content width of a column</dfn></dt>
1433+
<dd>the min-content width of the column based on cells of span up to N, where N is the number of columns in the table
14281434

14291435
<!--——————————————————————————————————————————————————————————————————————————-->
1430-
<dt><dfn>max-content width</dfn></dt>
1431-
<dd>the intermediate max-content width for span N, where N is the number of columns in the table
1436+
<dt><dfn>max-content width of a column</dfn></dt>
1437+
<dd>the max-content width of the column based on cells of span up to N, where N is the number of columns in the table
14321438

14331439
<!--——————————————————————————————————————————————————————————————————————————-->
1434-
<dt><dfn>intrinsic percentage width</dfn></dt>
1440+
<dt><dfn>intrinsic percentage width of a column</dfn></dt>
14351441
<dd>the smaller of:
14361442
<ul>
1437-
<li>intermediate intrinsic percentage width for span N,
1443+
<li>the intrinsic percentage width of the column based on cells of span up to N,
14381444
where N is the number of columns in the table
14391445
<li>100% minus the sum of the intrinsic percentage width of all prior columns in the table
1440-
(further left (right) when direction is "ltr" ("rtl"))
1446+
(further left when direction is "ltr" (right for "rtl"))
1447+
<a href="https://wptest.center/#/45xdf3" class="hint">Testcase</a>
14411448
</ul>
14421449
<p class="note">
14431450
The clamping of the total of the intrinsic percentage widths of columns to a maximum of 100%
@@ -1473,16 +1480,8 @@ spec:filter-effects-1; type:property; text:filter
14731480
The way this describes distribution of widths from colspanning cells is wrong.
14741481
For min-content and max-content widths it should refer to the rules
14751482
for distributing excess width to columns for intrinsic width calculation.
1476-
<span class="highlight">FR: Not sure what this means</span>
14771483
</div>
14781484

1479-
<div class="issue">
1480-
EDITORIAL.
1481-
Is 0% really treated like 0 rather than like a percentage value?
1482-
(e.g., if it's the only non-spanning percentage in a column that has a spanning cell with a percentage width?)
1483-
</div>
1484-
1485-
14861485
<!--
14871486
██ ██ ████ ████████ ████████ ██ ██ ████████ ████ ██████ ████████ ████████ ████ ████████ ██ ██ ████████ ████ ███████ ██ ██
14881487
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██
@@ -1510,11 +1509,11 @@ spec:filter-effects-1; type:property; text:filter
15101509
the largest of the <a href="#table-caption">table captions</a> <a>min-content contribution</a>.
15111510

15121511
The <dfn id="gridmin">row/column-grid width minimum (GRIDMIN)</dfn> width is
1513-
the sum of the <a>min-content width</a> of all the columns
1512+
the sum of the <a href="#min-content-width-of-a-column">min-content width</a> of all the columns
15141513
plus cell spacing or borders.
15151514

15161515
The <dfn id="gridmax">row/column-grid width maximum (GRIDMAX)</dfn> width is
1517-
the sum of the <a>max-content width</a> of all the columns
1516+
the sum of the <a href="#max-content-width-of-a-column">max-content width</a> of all the columns
15181517
plus cell spacing or borders.
15191518

15201519
The <dfn id="used-width-of-table">used width of a table</dfn> depends on the columns and captions widths as follows:
@@ -1558,7 +1557,7 @@ spec:filter-effects-1; type:property; text:filter
15581557

15591558
<h5 id="width-distribution-principles-rN">Rules</h5>
15601559

1561-
Ideally, each column should get its preferred width (usually its <a>max-content width</a>).
1560+
Ideally, each column should get its preferred width (usually its <a href="#max-content-width-of-a-column">max-content width</a>).
15621561
However, the <a>assignable table width</a> calculated before
15631562
could be either too big or too small to achieve this result,
15641563
in which case the user agent must assign adhoc widths to columns
@@ -1588,13 +1587,13 @@ spec:filter-effects-1; type:property; text:filter
15881587
<b>Rule 2: </b>
15891588
<span>
15901589
Columns using the same < 337 span class="pl-s"><a>sizing type</a> (percent columns, pixel columns, or auto columns) follow the same distribution method.
1591-
For example, they all get their <a>min-content width</a> or they all get their <a>max-content width</a>.
1590+
For example, they all get their <a href="#min-content-width-of-a-column">min-content width</a> or they all get their <a href="#max-content-width-of-a-column">max-content width</a>.
15921591
<br/>
15931592
<span class="note" style="display: block; margin-top: 0.5em">
15941593
There is one exception to this rule.
15951594
When giving its preferred percent width to a percent-column,
1596-
if that would result in a size smaller than its <a>min-content width</a>,
1597-
the column will be assigned its <a>min-content width</a> instead
1595+
if that would result in a size smaller than its <a href="#min-content-width-of-a-column">min-content width</a>,
1596+
the column will be assigned its <a href="#min-content-width-of-a-column">min-content width</a> instead
15981597
though the percent-columns group as a whole is still regarded
15991598
as being assigned the preferred percent widths.
16001599
</span>
@@ -1773,7 +1772,7 @@ spec:filter-effects-1; type:property; text:filter
17731772

17741773
The following changes to previous algorithm apply <a>in fixed mode</a>:
17751774

1776-
- The minimum width of percent-columns and auto-columns is considered to be zero
1775+
- The <a href="#min-content-width-of-a-column">min-content width</a> of percent-columns and auto-columns is considered to be zero
17771776

17781777
- Cells ignore their border and padding size if their width is a percentage ('box-sizing' is ignored)
17791778

@@ -2069,11 +2068,12 @@ spec:filter-effects-1; type:property; text:filter
20692068
Since during row layout the specified heights of cells in the row were ignored
20702069
and cells that were spanning more than one rows have not been sized correctly,
20712070
their height will need to be eventually distributed to the set of rows they spanned.
2072-
This is done by running the same algorithm as the column measurement for spans N>1,
2071+
This is done by running the same algorithm as the <a href="#computing-column-measures">column measurement</a>,
20732072
with the span=1 value being initialized (for min-content) with the largest of
20742073
the resulting height of the previous row layout,
20752074
the height specified on the corresponding table-row (if any),
2076-
and the largest height specified on cells that span this row only.
2075+
and the largest height specified on cells that span this row only
2076+
(the algorithm starts by considering cells of span 2 on top of that assignment).
20772077

20782078
<div class="issue">
20792079
EDITORIAL. Import the relevant section of [[#computing-column-measures]] here.

0 commit comments

Comments
 (0)