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