在表格中使用 <hr> 标签?

Posted

技术标签:

【中文标题】在表格中使用 <hr> 标签?【英文标题】:Using an <hr> tag with a table? 【发布时间】:2012-01-21 06:45:27 【问题描述】:

我有一个表格,其边框在 CSS 中设置为“无”。但是,我想用一条水平线分隔桌子上的每一行。 我尝试在特定行的每个 &lt;td&gt; &lt;/td&gt; 标记之间放置 &lt;hr&gt; 标记,但它会打印一条水平黑线,每列之间有小空格。

有没有什么方法可以使用不同的方法在表格中打印水平线?

【问题讨论】:

【参考方案1】:

我建议把:

<tr style="border-bottom: 1px solid #000;">

在您希望线路所在的每一行上。您也可以为每个单元格单独执行此操作。


更新

如果可以的话,我建议使用一个 css 类和一个单独的样式表。例如

<tr class="bordered"></tr>

tr.bordered 
    border-bottom: 1px solid #000;

【讨论】:

我不会使用内联样式,而是使用类。 我个人会使用一个类。但是对于刚开始开发电子邮件的人来说,无论哪种方式都有效 + 内联样式更容易学习 我不认为 tr 可以直接采用边框样式。见这里:***.com/questions/10040842/… TR 无法获得边框样式。不知道为什么这是公认的答案,这应该行不通。 这个答案确实有效,但并未说明这只适用于设置为 collapseborder-collapse 规则。【参考方案2】:

在行之间添加水平线的最佳方法是使用 CSS 边框。首先,您要折叠表格的所有边框,以便单元格之间没有空格(这也可能有助于您的解决方案,但我不建议为此目的使用 hr)。接下来,在每个单元格 (td) 的底部指定一个边框。类似地,您可以将边框设置为向左、向右、向上等。请参阅下面的自包含 html

<html>
<head>
    <style type='text/css'>
        table.test  border-collapse: collapse; 
        table.test td  border-bottom: 1px solid black; 
    </style>
</head>
<body>
    <table class='test'>
        <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
        <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
        <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
    </table>
</body>
</html>

更多边框选项,请查看this w3Schools page。

【讨论】:

这应该被标记为正确答案,因为在大多数现代浏览器中实际上不可能接受这个答案。不确定它是否回到了 11 年,但现在已经不是了。【参考方案3】:

您可以为您的“分隔”&lt;tr&gt; 定义一个 CSS 类:

<style>
tr.separated td 
    /* set border style for separated rows */
    border-bottom: 1px solid black;
 

table 
    /* make the border continuous (without gaps between columns) */
    border-collapse: collapse;

</style>

然后只标记所需的行:

 <tr>
      <td>
      <td>
 </tr>
 <tr class="separated">
      <td>
      <td>
 </tr>
 <tr>
      <td>
      <td>
 </tr>

参见示例https://jsfiddle.net/64nydcfu/1/

【讨论】:

TRs 无法获取边框样式。 另一件使这个答案几乎与其他答案一样的事情是,除非表格上有border-collapse:collapse 样式,否则边框可能会看起来被破坏。我赞成已经包含此内容的答案,但感谢您做出调整。我删除了反对票。【参考方案4】:

你可以试试这个,效果很好:

<tr>
    <td colspan="Number of columns">
        <hr>
    </td>
</tr>

【讨论】:

像魅力一样工作。【参考方案5】:

您不能将任何不是表格行的内容放在表格主体中。

相反,您应该为需要下划线的行指定一个类,这样您就可以在样式表中设置它们的底部边框。

【讨论】:

【参考方案6】:

我知道这个帖子已经有一段时间没有被触及了,但我遇到了这个可能的解决方案?

例如,如果使用 2 列表,请使用 &lt;td colspan="2"&gt;&lt;/td&gt;。它将跨越两列的两个单元格,无需任何额外的 CSS。

<tr>
<td>data<td>
<td>data2</td>
</tr>
<td colspan="2"></td>

拜托了,这是我第一次发帖! :)

【讨论】:

您提供的解决方案仅创建一个跨越两列的单元格。 OP 的问题是要求 一种创建水平线来分隔表格中每一行的方法 如果你把那个多列单元格放在一个新的 标签中,如果你把
放在这个单元格中,你会得到一条横穿表格的水平线。 (从技术上讲,您将创建一个仅包含一条水平线的新行。)对于 OP 的问题,它仍然是一个糟糕的解决方案,但在一些更有限的情况下可能有用。
【参考方案7】:

你想在 tr 元素上加一个边框。 Hr 是一个水平规则,而不是边界,不应该被用作一个。

http://jsfiddle.net/RhaqJ/

tr 
    border-bottom: 1px solid #000;   


<table cellpadding="0" cellspacing="0" >
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>

【讨论】:

【参考方案8】:

noshade="noshade" 属性可以帮助你去除阴影,更多的想法可以从this link 找到,我的意思是基于 CSS 的 HR 线。

和基于表格的样式类似

.bottomborder  
   border-bottom: 1px solid #CECECE; 


<td class=border-bottom> 

以下不起作用

<tr class=border-bottom>

【讨论】:

不会是 ? 【参考方案9】:

您所要做的就是在没有特定 Css 样式的情况下将水平规则作为新行放入,它会为您执行此操作并且非常容易实现。希望这会有所帮助!

<tr>
    <td>
        <hr>
    </td>
</tr>

【讨论】:

【参考方案10】:

你可以使用边框,但是如果你想创建一个 hr 标签(以便你可以设置它的样式),你需要在 td 中使用一个 div 标签

<!DOCTYPE html>
<html lang="en">
    <head>
        <style>
            table
                border: 1px solid black;
            
            td
                margin: 0;
            
            div
                display: flex;
                justify-content: center;
            
            hr
                margin: 0;
                width: 80%;
            
        </style>
    </head>
    <body>
        <table>
            <tr>
                <td>
                    1st row
                </td>
            </tr>
            <tr>
                <td>
                    <div><hr></div>
                </td>
            </tr>
            <tr>
                <td>
                    2nd row
                </td>
            </tr>
        </table>
    </body>
</html>

如果您有多个列,请确保为您的 td 标签使用 colspan=(x cols):

<!DOCTYPE html>
<html lang="en">
    <head>
        <style>
            td
                margin: 0;
            
            div
                display: flex;
                justify-content: center;
            
            hr
                margin: 0;
                width: 80%;
            
        </style>
    </head>
    <body>
        <table>
            <tr>
                <td colspan="2" style="text-align:center;">
                    1st row
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <div><hr></div>
                </td>
            </tr>
            <tr>
                <td>
                    2nd row
                </td>
                <td>
                    2nd row
                </td>
            </tr>
        </table>
    </body>
</html>

【讨论】:

以上是关于在表格中使用 <hr> 标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何改变html中hr的部分颜色

在HTML中

HTML CSS入门必备知识 编写一篇博客(基础标签和图片下载) 个人简历的表格练习

居中的文本,两边都有类似 hr 的线条,不使用表格

表中 <hr> 的悬停效果

表格标签