如何从 HTML 表格中完全删除边框

Posted

技术标签:

【中文标题】如何从 HTML 表格中完全删除边框【英文标题】:How to completely remove borders from HTML table 【发布时间】:2011-08-06 17:59:02 【问题描述】:

我的目标是制作一个类似于“相框”的 html 页面。也就是说,我想做一个被4张图片包围的空白页。

这是我的代码:

<table>
    <tr>
        <td class="bTop" colspan="3">
        </td>
    </tr>
    <tr>
        <td class="bLeft">
        </td>
        <td class="middle">
        </td>
        <td class="bRight">
        </td>
    </tr>
    <tr>
        <td class="bBottom" colspan="3">
        </td>
    </tr>                                                    
</table>

CSS 类如下:

.bTop

    width: 960px;
    height: 111px;
    background-image: url('../Images/BackTop.jpg');

.bLeft

    width: 212px;
    height: 280px;
    background-image: url('../Images/BackLeft.jpg');    



.middle

    width: 536px;
    height: 280px;


.bRight

    width: 212px;
    height: 280px;
    background-image: url('../Images/BackRight.jpg');    


.bBottom
        
    width: 960px;
    height: 111px;
    background-image: url('../Images/BackBottom.jpg');       

我的问题是表格的单元格之间出现细白线,我的意思是图片的边框不连续。如何避免这些空白?

【问题讨论】:

【参考方案1】:
<table cellspacing="0" cellpadding="0">

在 css 中:

table border: none;

编辑: 正如 iGEL 所指出的,此解决方案已被正式弃用(尽管仍然有效),因此如果您从头开始,您应该使用 jnpcl 的边框折叠解决方案。

到目前为止,我实际上非常不喜欢这种变化(不要经常使用表格)。它使一些任务变得更加复杂。例如。当您想在同一位置(视觉上)包含两个不同的边框时,一个是 TOP 用于一行,第二个是 BOTTOM 用于另一行。它们将折叠(= 仅显示其中一个)。然后你必须研究如何计算边框的“优先级”以及哪些边框样式“更强”(双与实心等)。

我是这样做的:

<table cellspacing="0" cellpadding="0">
  <tr>
    <td class="first">first row</td>
  </tr>
  <tr>
    <td class="second">second row</td>
  </tr>
</table>

----------

.first border-bottom:1px solid #EEE;
.second border-top:1px solid #CCC;

现在,随着边框折叠,这将不起作用,因为总是移除一个边框。我必须以其他方式来做(有更多的解决方案)。一种可能性是使用带有 box-shadow 的 CSS3:

<table class="tab">
  <tr>
    <td class="first">first row</td>
  </tr>
  <tr>
    <td class="second">second row</td>
  </tr>
</table>​​​

<style>
.tab border-collapse:collapse;
.tab .first border-bottom:1px solid #EEE;
.tab .second border-top:1px solid #CCC;box-shadow: inset 0 1px 0 #CCC;​
</style>

你也可以使用类似“groove|ridge|inset|outset”的边框样式,只有一个边框。但对我来说,这不是最佳选择,因为我无法控制两种颜色。

也许有一些简单而不错的折叠边界的解决方案,但我还没有看到它,老实说我没有花太多时间在它上面。也许这里有人可以给我/我们看;)

【讨论】:

cellspacing & cellpadding 自 1999 年以来已被弃用,请参阅 developer.mozilla.org/en-US/docs/HTML/Element/table - 您应该使用 @jnpcl 解决方案。 iGEL 是对的,我已经编辑了我的答案。老实说,我很惊讶,它被弃用了这么长时间,而我仍在使用它而没有任何问题:)【参考方案2】:
table 
    border-collapse: collapse;

【讨论】:

【参考方案3】:

对我来说,我需要做这样的事情来完全删除表格和所有单元格的边框。这根本不需要修改 HTML,这对我来说很有帮助。

table, tr, td 
    border: none;

【讨论】:

尝试了所有的建议直到这里,最后border: none 应用到td 说服了jekyll 制作一个无边框的表格:&lt;td markdown="span" style="padding: 0.5vw; border: none; max-width:100%; max-height:10%; background: transparent;"&gt;【参考方案4】:

在引导环境中,最重要的答案都没有帮助,但应用以下内容删除了所有边框:

.noBorder 
    border:none !important;

申请为:

<td class="noBorder">

【讨论】:

这个建议在 Wordpress 中对我有用。我很难让边界不被强制执行。【参考方案5】:

在引导环境中,这是我的解决方案:

    <table style="border-collapse: collapse; border: none;">
        <tr style="border: none;">
            <td style="border: none;">
            </td>
        </tr>
    </table>    

【讨论】:

【参考方案6】:

这就是为我解决问题的方法:

在您的 HTML tr 标签中,添加以下内容:

style="border-collapse: collapse; border: none;"

这删除了表格行上显示的所有边框。

【讨论】:

【参考方案7】:

使用 TinyMCE 编辑器,我能够删除所有边框的唯一方法是使用 border:hidden 的样式,如下所示:

<style>
table, tr border:hidden;
td, th border:hidden;
</style>

在 HTML 中是这样的:

<table style="border:hidden;"</table>

干杯

【讨论】:

【参考方案8】:

在您的全局 CSS 中使用这种 Css 样式

.table,
.monthview-datetable td,
.monthview-datetable th 
  border: none !important;

【讨论】:

【参考方案9】:
table 
   border: none;

您可以使用这个 css 属性来隐藏表格边框。

【讨论】:

【参考方案10】:

给定:

    <table>
            <tr>
                <th>Company</th>
                <th>Contact</th>
                <th>Country</th>
            </tr>
    <table>

在你的 CSS 上使用它会起作用:

tr  
    border: transparent 1px solid; 
   
            

【讨论】:

【参考方案11】:

我发现border-spacing 是我的问题

 td, th, tr, table 
    border: 0 !important;
    border-spacing:0 !important;
  

【讨论】:

以上是关于如何从 HTML 表格中完全删除边框的主要内容,如果未能解决你的问题,请参考以下文章

HTML,从表格的左上角单元格中删除边框

从表格中删除 `border` 属性不会删除边框

如何使用jsPDF-AutoTable从表格中删除水平线

表格中特定行的边框?

如何删除表格中的边框间距

从表格边框、棋盘 HTML 中排除行