2

Why does tr { display:initial } cause the td colspan=5 to be ignored?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <style>
        * { border-style: solid; }
    </style>
</head>
<body>
    <table>
        <tr> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> </tr>
        <tr> <td colspan="5">cs=5</td> </tr>
        <tr> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> </tr>
        <tr style="display: initial"> <td colspan="5">cs=5,d=i</td> </tr>
        <tr> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> </tr>
    </table>
</body>
</html>

"inherit" has the same wrong effect.

The real situation is attempting to use JavaScript to toggle the display between "none" and "initial".

Ray Butterworth
  • 588
  • 1
  • 3
  • 18

1 Answers1

1

Your solution is to toggle between none and table-row.

But good question! I can't explain why initial doesn't work as expected.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <style>
        * { border-style: solid; }
    </style>
</head>
<body>
    <table>
        <tr> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> </tr>
        <tr> <td colspan="5">cs=5</td> </tr>
        <tr> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> </tr>
        <tr style="display: table-row"> <td colspan="5">cs=5,d=i</td> </tr>
        <tr> <td>×</td> <td>×</td> <td>×</td> <td>×</td> <td>×</td> </tr>
    </table>
</body>
</html>
Louys Patrice Bessette
  • 33,375
  • 6
  • 36
  • 64