我試着寫簡單的錶行的交替顏色。HTML表備用行的色彩搭配隱藏的行
這是非常簡單的一個已經實現了預期的結果,我現在面臨的問題是,當我有一個隱藏的行,顏色圖案運行到的問題。
這裏是我的小提琴:http://jsfiddle.net/oampz/2Wt49/
正如你所看到的,當你點擊「+」表膨脹,中行的顏色交替,但是當表損壞,也有顏色的問題。
這裏是我的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>
這裏是我的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;
}
任何幫助表示讚賞。
感謝射手!你的例子似乎工作得很好,Nico O的答案也在工作,但更簡單一點,是否有任何職業的和職業的? –
最後回到我的問題。 Nico的答案顯然比較乾淨,但是不能用你原來的css,因爲你沒有設置元素的可見狀態。你所做的事確實讓你看不到隱藏的行,但是它們仍然被jQuery選擇器分類爲可見,這就是爲什麼我最終在我的答案中按高度過濾的原因。如果你可以改變你的css使用'display:none'作爲隱藏行,那麼Nico的答案肯定是更好的選擇。 – Archer
哦,是的。對不起我屠殺你的CSS;)很好的答案@Archer –