| <!doctype html> | |
| <script src='/resources/testharness.js'></script> | |
| <script src='/resources/testharnessreport.js'></script> | |
| <link rel="author" title="Richard Townsend" href="Richard.Townsend@arm.com" /> | |
| <link rel="help" href="https://drafts.csswg.org/css-tables-3/#computing-column-measures" /> | |
| <style type="text/css"> | |
| td { | |
| padding: 0; | |
| } | |
| div { | |
| /* Bug does not happen when the table's containing block is less | |
| than (100+200+300)=600px, so make sure sure that it's larger. */ | |
| width: 750px; | |
| } | |
| </style> | |
| <div> | |
| <h1>Width Distribution</h1> | |
| <h4>"Computing column measures"</h4> | |
| <p>This is testing that the table's auto columns are correctly recalculated after removing and adding a <code>col</code> element. | |
| <a href="https://www.w3.org/TR/CSS2/tables.html#auto-table-layout">Spec Text</a></p> | |
| <hr/> | |
| <table id="one" style="border: 1px solid orange"> | |
| <colgroup> | |
| <col style="width: 100px" /> | |
| <col style="width: 200px" /> | |
| <col style="width: 300px;" id="hideable" /> | |
| </colgroup> | |
| <tr> | |
| <td>100</td> | |
| <td>200</td> | |
| <td>300</td> | |
| </tr> | |
| </table> | |
| <table id="two" style="border: 1px solid orange"> | |
| <colgroup> | |
| <col style="width: 100px; display: none;" id="displayable" /> | |
| <col style="width: 200px;" /> | |
| <col style="width: auto;" /> | |
| </colgroup> | |
| <tr> | |
| <td>100</td> | |
| <td>200</td> | |
| <td>300</td> | |
| </tr> | |
| </table> | |
| <table id="ref" style="border: 1px solid orange"> | |
| <colgroup> | |
| <col style="width: 100px;" /> | |
| <col style="width: 200px;" /> | |
| <col style="width: auto;" /> | |
| </colgroup> | |
| <tr> | |
| <td>100</td> | |
| <td>200</td> | |
| <td>300</td> | |
| </tr> | |
| </table> | |
| </div> | |
| <script> | |
| test(function() { | |
| var one = document.getElementById('one'); | |
| var two = document.getElementById('two'); | |
| var ref = document.getElementById('ref'); | |
| // Force initial layout. | |
| assert_greater_than(one.offsetWidth, ref.offsetWidth); | |
| // Display two's colgroup and hide one's. | |
| document.getElementById('displayable').style.display = 'table-column'; | |
| document.getElementById('hideable').style.display = 'none'; | |
| // Both tables should now match the reference. | |
| assert_equals(one.offsetWidth, ref.offsetWidth); | |
| assert_equals(two.offsetWidth, ref.offsetWidth); | |
| }, "Table recalculations should match the reference"); | |
| </script> |