I'm trying to write simple table with alternate colors of rows.
This is pretty straight forward an have achieved the expected outcome, the issue I am facing is when I have a hidden row, the colour pattern runs into issues.
Here is my fiddle: http://jsfiddle.net/oampz/2Wt49/
As you can see, when you click on the ' + ' the table expands and the rows colours alternate, but when the table is collapsed, there are issues in colours.
Here is my HTML:
<table id="bs-search-results" class="tbl tbl--highlight stripes half-mb"> <thead> <tr> <th>Name</th> <th>Age</th> <th>Height</th> <th>Weight</th> </tr> </thead> <tbody> <tr> <td class="ShowMe">+ 0000111</td> <td>0000111</td> <td>0000111</td> <td>0000111</td> </tr> <tr id="itsHidden" class="visuallyhidden"> <td>0000222</td> <td>0000222</td> <td>0000222</td> <td>0000222</td> </tr> <tr> <td>0000333</td> <td>0000333</td> <td>0000333</td> <td>0000333</td> </tr> <tr> <td>0000444</td> <td>0000444</td> <td>0000444</td> <td>0000444</td> </tr> </tbody> </table> Here is my CSS:
table { border-collapse: collapse; border-spacing: 0; width: 100%; } th { min-width: 22px; } .stripes tbody > tr:nth-child(2n+2) { background: #f2f2f2; } .stripes li:nth-child(2n+2) { background: #f2f2f2; } .tbl { border: 1px solid #d1d1d1; font-size: 12px; font-size: 0.75rem; line-height: 2; clear: both; } .tbl th, .tbl td { padding: 3px; text-align: left; border-right: 1px solid #d1d1d1; } .tbl th { border-bottom: 1px solid #d1d1d1; } .tbl--highlight tbody tr:hover { background: #d4e8fc; cursor: pointer; } .tbl--input td { overflow: hidden; } .half-mb { margin: 0 0 12px 0; } .visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } Any help appreciated.