将border-bottom添加到表行<tr>

San*_*ile 361 html css html-table

我有一个3乘3的表.我需要一种方法为每行的底部添加一个边框tr并给它一个特定的颜色.

首先我尝试了直接的方式,即:

<tr style="border-bottom:1pt solid black;">
Run Code Online (Sandbox Code Playgroud)

但那没用.所以我添加了这样的CSS:

tr {
border-bottom: 1pt solid black;
}
Run Code Online (Sandbox Code Playgroud)

那还是行不通的.

我更喜欢使用CSS,因为那时我不需要style为每一行添加属性.我还没有添加border属性<table>.我希望这不会影响我的CSS.

Nat*_*sos 480

添加border-collapse:collapse到您的表规则:

table { 
    border-collapse: collapse; 
}
Run Code Online (Sandbox Code Playgroud)

链接

  • 你错了,@ Renan.折叠边框模型正是使行边框可以设置样式的原因.根据[CSS sectoin 17.6](http://www.w3.org/TR/CSS21/tables.html#borders):在单独的边界模型中"行,[...]不能有边界(即用户代理)必须忽略这些元素的边框属性.""在折叠边框模型中,可以指定围绕单元格的全部或部分的边框,行[和]行组[...]"顺便说一下:它在我的浏览器中有效(Chromium 37). (45认同)
  • 我认为有些人可能会感到困惑(就像我做的那样)并且没有注意到需要在桌面上设置边框折叠样式,而不是行. (10认同)
  • 我认为这应该是公认的答案. (6认同)
  • 它没有FF. (5认同)
  • 这本身不起作用.您仍然无法设置行的样式,但您可以设置单元格的样式. (2认同)
  • 这删除了填充。 (2认同)

tsh*_*rif 371

我以前遇到过这样的问题.我认为tr不能直接采用边框造型.我的解决方法是td在行中设置样式:

<tr class="border_bottom">
Run Code Online (Sandbox Code Playgroud)

CSS:

tr.border_bottom td {
  border-bottom:1pt solid black;
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,使用此解决方案,您很可能在td之间的边界中存在间隙.[simoncereska的回答](http://stackoverflow.com/a/10040974/2098939)处理这个问题,但请注意,使用虚线或虚线边框类型可能看起来不太好(因为它们不是连续的) (26认同)
  • 您还可以通过将`cellspacing ="0"`作为属性添加到`<table>`来解决这个问题(参见[this question](http://stackoverflow.com/a/670571/2521769)).但是,不知道用虚线或虚线边框看起来如何. (23认同)
  • `tr`可以在折叠边框模型中采用边框样式.@Sangram,考虑接受一个考虑到这个而不是这一个的答案,不是吗? (5认同)

小智 69

使用border-collapse:collapse上表border-bottom: 1pt solid black;的TR

  • @RaduSimionescu错了,它在`tr`上完全正常,边框折叠了. (7认同)
  • 即使边框折叠,在tr上设置边框也没用.你必须把它设置在tr的tds上 (6认同)

小智 38

使用

border-collapse:collapse 正如内森所写,你需要设定

td { border-bottom: 1px solid #000; }


小智 29

这里有很多不完整的答案.由于您无法将边框应用于tr标记,因此您需要将其应用于tdth标记,如下所示:

td {
  border-bottom: 1pt solid black;
}
Run Code Online (Sandbox Code Playgroud)

这样做会在每个之间留一个小空间td,如果您希望边框看起来像是tr标记,则可能不太可能.为了"填补空白"可以说,你需要利用元素border-collapse上的属性table并将其值设置为collapse,如下所示:

table {
  border-collapse: collapse;
}
Run Code Online (Sandbox Code Playgroud)


小智 15

您可以使用该box-shadow属性来伪造tr元素的边框。调整 Y 位置box-shadow(下图表示为 2px)以调整厚度。

tr {
  -webkit-box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
  -moz-box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
  box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
}
Run Code Online (Sandbox Code Playgroud)


小智 11

我尝试添加

    table {
      border-collapse: collapse;
    }   
Run Code Online (Sandbox Code Playgroud)

旁边

    tr {
      bottom-border: 2pt solid #color;
    }
Run Code Online (Sandbox Code Playgroud)

然后注释掉 border-collapse 看看效果如何。只是让带有底部边框属性的 tr 选择器对我有用!

无边框 CSS 前。

无边框 CSS 前。

无边框照片直播

无边框照片直播

CSS 边框前。

CSS 边框前。

带边框照片直播的桌子

带边框照片直播的桌子


Jer*_*mey 8

将行显示为块.

tr {
    display: block;
    border-bottom: 1px solid #000;
}
Run Code Online (Sandbox Code Playgroud)

并简单地显示替代颜色:

tr.oddrow {
    display: block;
    border-bottom: 1px solid #F00;
}
Run Code Online (Sandbox Code Playgroud)

  • [**不是一个好主意](http://www.velocityreviews.com/forums/t160487-firefox-and-style-display-block-on-table-row.html)设置`display:block`为'tr`的.使用`tr td {border-bottom:...}`ad`tr.oddrow td {border-bottom:...}` (11认同)
  • 显示块可能会破坏表layout.border-collapse:表本身崩溃绝对是最好的解决方案 (3认同)

小智 8

使用

table{border-collapse:collapse}
tr{border-top:thin solid}
Run Code Online (Sandbox Code Playgroud)

用CSS属性替换"thin solid".


thi*_*t_p 5

如果你不想

  • 强制表格边框折叠
  • 使用 TD 元素样式

您可以使用::after选择器向 TR 添加边框:

table tbody tr {
    position : relative; # to contain the ::after element within the table-row
}

table tbody tr td {
    position : relative; # needed to apply a z-index
    z-index : 2; # needs to be higher than the z-index on the tr::after element
}

table tbody tr::after {
    content : '';
    position : absolute;
    z-index : 1; # Add a z-index below z-index on TD so you can still select data from your table rows :)
    top : 0px;
    left : 0px;
    width : 100%;
    height : 100%;
    border : 1px solid green; # Style your border here, choose if you want a border bottom, top, left, etc ...
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的技巧,我在必须在表行之间放置空格的情况下使用,因此我无法在表上添加边框折叠,最终结果:

在此输入图像描述

希望能帮助到你 :)