【问题标题】:Removing unwanted table cell borders with CSS使用 CSS 删除不需要的表格单元格边框
【发布时间】:2011-01-03 14:39:02
【问题描述】:

我有一个奇怪而令人沮丧的问题。对于简单的标记:

<table>
    <thead>
        <tr><th>1</th><th>2</th><th>3</th></tr>
     </thead>
    <tbody>
        <tr><td>a</td><td>b></td><td>c</td></tr>
        <tr class='odd'><td>x</td><td>y</td><td>z</td></tr>
    </tbody>
</table>

我对 theadtrtr 奇数元素应用不同的背景颜色值。问题是在大多数浏览器中,每个单元格都有一个不需要的边框,它不是任何表格行的颜色。只有在 Firefox 3.5 中,表格在任何单元格中都没有边框。

我只是想知道如何在其他主要浏览器中删除这些边框,以便您在表格中看到的唯一内容是交替的行颜色。

【问题讨论】:

  • 感谢所有建议在 CSS 中添加border-collapse:collapse 的人。做到了。

标签: html css html-table


【解决方案1】:

您需要将此添加到您的 CSS:

table { border-collapse:collapse }

【讨论】:

  • 请注意,这必须应用于 table,而不是 td。我刚刚犯了这个错误,花了半个多小时试图弄清楚为什么它不起作用。
【解决方案2】:

要删除边框,只需像这样使用 css :

td {
 border-style : hidden!important;
}

【讨论】:

    【解决方案3】:

    添加一些css:

    td, th {
       border:none;
    }
    

    【讨论】:

    • 应用于表格时在 chrome 60.0.3112.113 上对我不起作用
    【解决方案4】:

    像这样修改你的 HTML:

    <table border="0" cellpadding="0" cellspacing="0">
        <thead>
            <tr><td>1</td><td>2</td><td>3</td></tr>
         </thead>
        <tbody>
            <tr><td>a</td><td>b></td><td>c</td></tr>
            <tr class='odd'><td>x</td><td>y</td><td>z</td></tr>
        </tbody>
    </table>
    

    (我加了border="0" cellpadding="0" cellspacing="0"

    在 CSS 中,您可以执行以下操作:

    table {
        border-collapse: collapse;
    }
    

    【讨论】:

      【解决方案5】:

      将表的cellspacing属性设置为0

      您也可以使用 CSS 样式 border-spacing: 0,但前提是您不需要支持旧版本的 IE。

      【讨论】:

        【解决方案6】:

        您可能还想添加

        table td { border:0; }
        

        以上等价于设置cellpadding="0"

        它消除了浏览器自动添加到单元格的填充,这可能取决于文档类型和/或任何用于重置默认浏览器样式的 CSS

        【讨论】:

        • Cellpadding 是表格内容与其边界 td{padding:X} 之间的空间。单元格间距是每个单元格边界之间的空间(单元格边界之间的“边距”)。您可以设置border-collapse 来模仿cellspacing 属性在表格标签上的作用,但这并不是万无一失的。
        【解决方案7】:

        在尝试了上述建议后,唯一对我有用的是在子主题的 style.css 的以下部分中将边框属性更改为“0”(执行“查找”操作来定位每个部分——以下只是sn-ps):

        .comment-content table {
            border-bottom: 1px solid #ddd;
        
        .comment-content td {
            border-top: 1px solid #ddd;
            padding: 6px 10px 6px 0;
        }
        

        因此之后看起来像这样:

        .comment-content table {
            border-bottom: 0;
        
        .comment-content td {
            border-top: 0;
            padding: 6px 10px 6px 0;
        }
        

        【讨论】:

          【解决方案8】:

          尝试将border: 0px; border-collapse: collapse; 的样式分配给表格元素。

          【讨论】:

          • @Josh 不是border: none吗?
          • @DougNeiner 旧帖,但 none 和 0 都同样有效。我喜欢 0,因为我必须少输入 :)
          【解决方案9】:

          有时甚至在清除borders 之后。

          原因是td里面有图片,给图片display:block就解决了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-08-08
            • 1970-01-01
            • 1970-01-01
            • 2011-01-04
            • 2015-11-23
            • 1970-01-01
            相关资源
            最近更新 更多