1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
<!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-width">
<link rel="help" href="https://drafts.csswg.org/css-box-3/#visibility-prop">
<style>
x-table {
border: 5px solid black;
}
x-table span {
display: inline-block;
vertical-align: top;
background: lime;
margin: 3px;
height: 100px;
width: 100px;
}
</style>
<main>
<h1>Visibility hidden</h1>
<a href="https://drafts.csswg.org/css-tables-3/#computing-the-table-width">Spec</a>
<p>
Setting a table to visibility:hidden, but rows and cells to different visibility values.
</p>
<x-table id="one">
<x-tbody>
<x-tr id="visibleRow">
<x-td>
<span>row 1</span>
</x-td>
<x-td>
<span></span>
</x-td>
</x-tr>
<x-tr>
<x-td>
<span>row 2</span>
</x-td>
<x-td id="visibleCell">
<span></span>
</x-td>
</x-tr>
<x-tr>
<x-td>
<span>row 3</span>
</x-td>
<x-td>
<span id="visibleSpan"></span>
</x-td>
</x-tr>
</x-tbody>
</x-table>
Bottom table is identical to top, except entire table is hidden, the second row
is visible with a nested hidden cell, and the third row is visible with a nested
hidden span.
<x-table id="two" style="visibility:hidden;">
<x-tbody>
<x-tr id="invisibleRow">
<x-td>
<span>row 1</span>
</x-td>
<x-td>
<span></span>
</x-td>
</x-tr>
<x-tr style="visibility:visible;">
<x-td>
<span>row 2</span>
</x-td>
<x-td id="invisibleCell" style="visibility:hidden;">
<span></span>
</x-td>
</x-tr>
<x-tr style="visibility:visible;">
<x-td>
<span>row 3</span>
</x-td>
<x-td>
<span id="invisibleSpan" style="visibility:hidden;"></span>
</x-td>
</x-tr>
</x-tbody>
</x-table>
</main>
<script>
tests = [
[
document.getElementById('two').offsetHeight,
document.getElementById('one').offsetHeight,
"table visibility:hidden doesn't change table height"
],
[
document.getElementById('two').offsetWidth,
222,
"table visibility:hidden doesn't change table width"
],
[
document.getElementById('visibleRow').offsetWidth,
document.getElementById('invisibleRow').offsetWidth,
"row visibility:hidden doesn't change row width"
],
[
document.getElementById('visibleRow').offsetHeight,
document.getElementById('invisibleRow').offsetHeight,
"row visibility:hidden doesn't change row height"
],
[
document.getElementById('visibleCell').offsetWidth,
document.getElementById('invisibleCell').offsetWidth,
"cell visibility:hidden doesn't change cell width"
],
[
document.getElementById('visibleCell').offsetHeight,
document.getElementById('invisibleCell').offsetHeight,
"cell visibility:hidden doesn't change cell height"
],
[
document.getElementById('visibleSpan').offsetWidth,
document.getElementById('invisibleSpan').offsetWidth,
"span visibility:hidden doesn't change span width"
],
[
document.getElementById('visibleSpan').offsetHeight,
document.getElementById('invisibleSpan').offsetHeight,
"span visibility:hidden doesn't change span height"
]];
for (i = 0; i< tests.length; i++) {
test(function()
{
assert_equals.apply(this, tests[i]);
},
tests[i][2]);
};
</script>
</html>
|