@@ -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