我有如下表格,对于某些行,应用了noBorder类,它将为该行的顶部边框移动。即使我删除当前行的border-top,前一个(上面)行border-bottom也是可见的。所以基于class =" noBorder"标识符,我应该删除上面的行border-bottom。我怎么能做到这一点。该表将从后端动态生成。表生成后,我需要应用css样式2.1(而不是css3)进行表修改。
HTML:
.table-content > th,
.table-content td {
border: black solid thin;
}
tr.noBorder td {
border-top: none;
}

<table style="width:100%" class="table-content table-content4td lineHeight table-hideColumn3Border">
<tr class="table-th-color">
<td style="width: 5%" class="textAlignLeft">No.</td>
<td style="width: 60%" class="textAlignLeft">Description</td>
<td style="width: 20%" class="textAlignLeft"></td>
<td style="width: 15%" class="textAlignLeft">Value</td>
</tr>
<tr>
<td>1</td>
<td>Row 1</td>
<td></td>
<td>value</td>
</tr>
<tr class="noBorder">
<td></td>
<td>Test1</td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>Row2</td>
<td></td>
<td>Value</td>
</tr>
<tr class="noBorder">
<td></td>
<td>Test2</td>
<td></td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>Row 3</td>
<td></td>
<td>Value</td>
</tr>
<tr>
<td>4</td>
<td>Row 4</td>
<td></td>
<td>Value</td>
</tr>
<tr class="noBorder">
<td></td>
<td>Test 4</td>
<td></td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>Row 5</td>
<td></td>
<td>Value</td>
</tr>
</table>
&#13;
该表是动态的,具有类noBorder的行将仅在某个时候添加。因此,如果该行仅存在,我必须删除上一行的当前行和下边框的顶部边框,否则无需删除任何边框。
答案 0 :(得分:1)
快速修复:将noBorder
类添加到不应具有底部边框的行中。然后
tr.noBorder td {
border-bottom: none;
}
tr.noBorder + tr td {
border-top: none;
}
根据需要进行调整
您也可以使用border-collapse: collapse;
,但不清楚这是否会对您造成其他问题,例如左右边框。
答案 1 :(得分:1)
更好的方法是让表格单元格td
只有一个边框,border-top
。
为最后一个孩子:nth-last-child(1)
添加课程,让border-bottom
。
.table-content td {
border-top: black solid thin;
}
.table-content tr:nth-last-child(1) td {
border-bottom: black solid thin;
}
tr.noBorder td {
border-top: none;
}
答案 2 :(得分:1)
你可以这样做是使用一些JavaScript。
您只需获取所有表的td
子数组,遍历该数组并检查它是否具有类noBorder
。如果有,请将其他一些css类(可能是.noBottomBorder
)添加到上一个td
,删除底部边框。
让孩子跑步:
var tds = document.getElementById("mytableid").getElementsByTagName("td");