【发布时间】:2019-07-28 17:53:04
【问题描述】:
这个长问题可以组合成一个简单的句子:如何在不影响其 tr 或 td 元素的情况下选择性地设置表格的边框(底部或顶部)?我认为它会是就像更改任何元素的边框一样简单。我错了。
问题的其余部分解释了我在哪里需要这个以及到目前为止我已经尝试过什么。
以下是 HTML 标记的简化描述: 三个表有三个 div。我想让它们看起来像一张桌子。这三个 div 是必需的,原因与此处无关。
如果我使用以下内容:
$('#tbl1').css('border-bottom', 'none');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1">
<table id="tbl1" border="1" style="width:400px;" >
<thead>
<tr>
<td>Head Row 1, cell 1</td>
<td>Head Row 1, cell 2</td>
<td>Head Row 1, cell 3</td>
</tr>
<tr>
<td>Head Row 2, cell 1</td>
<td>Head Row 2, cell 2</td>
<td>Head Row 2, cell 3</td>
</tr>
</thead>
</table>
</div>
<div id="div2" >
<table id="tbl2" style="width:400px;" border="1">
<tbody>
<tr>
<td>Row 1, cell 1</td>
<td>Row 1, cell 2</td>
<td>Row 1, cell 3</td>
</tr>
<tr>
<td>Row 1, cell 1</td>
<td>Row 1, cell 2</td>
<td>Row 1, cell 3</td>
</tr>
</tbody>
</table>
</div>
<div id="div3" >
<table id="tbl3" border="1" style="width:400px;">
<tfoot>
<tr>
<td>Foot Row 1, cell 1</td>
<td>Foot Row 1, cell 2</td>
<td>Foot Row 1, cell 3</td>
</tr>
<tr>
<td>Foot Row 2, cell 1</td>
<td>Foot Row 2, cell 2</td>
<td>Foot Row 2, cell 3</td>
</tr>
</tfoot>
</table>
</div>
它采用第一个表格中所有单元格的下边框,而不仅仅是表格的下边框。如果我使用:
$('#tbl1' + ' tr:last-child').css('border-bottom', 'none')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1">
<table id="tbl1" border="1" style="width:400px;" >
<thead>
<tr>
<td>Head Row 1, cell 1</td>
<td>Head Row 1, cell 2</td>
<td>Head Row 1, cell 3</td>
</tr>
<tr>
<td>Head Row 2, cell 1</td>
<td>Head Row 2, cell 2</td>
<td>Head Row 2, cell 3</td>
</tr>
</thead>
</table>
</div>
<div id="div2" >
<table id="tbl2" style="width:400px;" border="1">
<tbody>
<tr>
<td>Row 1, cell 1</td>
<td>Row 1, cell 2</td>
<td>Row 1, cell 3</td>
</tr>
<tr>
<td>Row 1, cell 1</td>
<td>Row 1, cell 2</td>
<td>Row 1, cell 3</td>
</tr>
</tbody>
</table>
</div>
<div id="div3" >
<table id="tbl3" border="1" style="width:400px;">
<tfoot>
<tr>
<td>Foot Row 1, cell 1</td>
<td>Foot Row 1, cell 2</td>
<td>Foot Row 1, cell 3</td>
</tr>
<tr>
<td>Foot Row 2, cell 1</td>
<td>Foot Row 2, cell 2</td>
<td>Foot Row 2, cell 3</td>
</tr>
</tfoot>
</table>
</div>
它确实占用了第一个表格最后一行的底部边框,但保留了表格本身的底部边框。
当然,为了处理最低两张表的情况,上述问题是重复的。
我的目标是删除所有连接表格的边框痕迹,以便我可以将一个粗边框或任何其他类型的边框分配给一张表格作为表格分隔符。因此,进一步澄清:
第一个表格的下边框和第二个表格的上边框以及对应行的tr和tds的对应边框都必须去掉。
第三个表格的上边框和第二个表格的下边框以及对应行的tr和tds对应的边框都必须去掉。
在此之后,我可以设置任何我想充当表格分隔符的边框。
中间的表格可以滚动,所以我将在顶部表格上放置一个新的底部边框,在底部边框上放置一个新的顶部边框。
解决方案必须尽可能通用,以适应任何可能的表格布局,但限制为一行是一个 tr,并且每个表格至少有一个 tr。
【问题讨论】:
-
只是想在一个框中显示所有表格?
-
@AmareshSM 到目前为止,我已经弄清楚了一切。问题是如何在表格上设置边框底部或边框顶部而不影响内部行/单元格/列。这确实是一个简单的问题,但是因为如果没有提供代码,问题就会被拒绝,所以我提供了一些代码......
标签: jquery html css html-table