| <!doctype html> |
| <meta charset="utf-8"> |
| <script src='/resources/testharness.js'></script> |
| <script src='/resources/testharnessreport.js'></script> |
| <link rel='stylesheet' href='support/base.css' /> |
| <link rel="author" title="Joy Yu" href="mailto:joysyu@mit.edu"> |
| <link rel="help" href="https://drafts.csswg.org/css-tables-3/#computing-the-table-height"> |
| <style> |
| table { |
| border-spacing: 0; |
| border-collapse: collapse; |
| } |
| table td { |
| border: 1px solid blue; |
| padding: 5px; |
| } |
| </style> |
| <main> |
| <h1>Visibility collapse</h1> |
| <a href="https://drafts.csswg.org/css-tables-3/#computing-the-table-height">Spec</a> |
| <p> |
| Setting a row to visibility:collapse changes table height but not width. |
| Here the spanning cell and another cell are in the same row. |
| </p> |
| <table id="one"> |
| <tr id="firstRowRef"> |
| <td>aaaa</td> |
| </tr> |
| <tr id="secondRowRef"> |
| <td>bbbb</td> |
| </tr> |
| <tr id="collapsedRowRef"> |
| <td rowspan="2">spanning</td> |
| <td>cccc</td> |
| </tr> |
| <tr id="fourthRowRef"> |
| <td>dddd</td> |
| </tr> |
| <tr id="fifthRowRef"> |
| <td>eeee</td> |
| </tr> |
| </table> |
| Bottom table is identical to top except third row has been collapsed. |
| <table id="two"> |
| <tr id="firstRow"> |
| <td>aaaa</td> |
| </tr> |
| <tr id="secondRow"> |
| <td>bbbb</td> |
| </tr> |
| <tr style="visibility:collapse;" id="collapsedRow"> |
| <td rowspan="2">spanning</td> |
| <td>cccc</td> |
| </tr> |
| <tr id="fourthRow"> |
| <td>dddd</td> |
| </tr> |
| <tr id="fifthRow"> |
| <td>eeee</td> |
| </tr> |
| </table> |
| </main> |
| |
| <script> |
| tests = [ |
| [ |
| document.getElementById('two').offsetWidth, |
| document.getElementById('one').offsetWidth, |
| "spanning row visibility:collapse doesn't change table width" |
| ], |
| [ |
| document.getElementById('collapsedRow').offsetHeight, |
| 0, |
| "collapsed row has zero height" |
| ], |
| [ |
| document.getElementById('firstRow').offsetHeight, |
| document.getElementById('firstRowRef').offsetHeight, |
| "first row height doesn't change" |
| ], |
| [ |
| document.getElementById('secondRow').offsetHeight, |
| document.getElementById('secondRowRef').offsetHeight, |
| "second row height doesn't change" |
| ], |
| [ |
| document.getElementById('fourthRow').offsetHeight, |
| document.getElementById('fourthRowRef').offsetHeight, |
| "fourth row height doesn't change" |
| ], |
| [ |
| document.getElementById('fifthRow').offsetHeight, |
| document.getElementById('fifthRowRef').offsetHeight, |
| "fifth row height doesn't change" |
| ]]; |
| for (i = 0; i< tests.length; i++) { |
| test(function() |
| { |
| assert_equals.apply(this, tests[i]); |
| }, |
| tests[i][2]); |
| }; |
| </script> |
| </html> |