不带条纹/边框的Bootstrap表格

228

在使用Bootstrap时,我遇到了一个CSS问题。同时我还在使用Angular JS和Angular UI.bootstrap(这可能是问题的一部分)。

我正在制作一个网站,在表格中显示数据。有时,数据包含我必须在表格中显示的对象。因此,我想在普通表格内放置无边框表格,同时保留无边框表格内的分隔线。

但是,即使我明确表示不要在表格上显示边框,它也会被强制显示:

HTML:

<table class='table borderless'>

CSS:

.borderless table {
    border-top-style: none;
    border-left-style: none;
    border-right-style: none;
    border-bottom-style: none;
}

所以,在这里,我想要的只是内部边框。


1
你使用的是哪个版本的Bootstrap? - Martin Bean
2
我正在使用Bootstrap 2.3.1。 - Romain
2
使用Bootstrap 4:.borderless tr td,.borderless tr th {border: none;} - Yevhenii Shashkov
18个回答

366

在使用Bootstrap 3.2.0时,我遇到了Brett Henderson的问题(边框总是存在),因此我对其进行了改进:

HTML

<table class="table table-borderless">

CSS

:层叠样式表。

.table-borderless > tbody > tr > td,
.table-borderless > tbody > tr > th,
.table-borderless > tfoot > tr > td,
.table-borderless > tfoot > tr > th,
.table-borderless > thead > tr > td,
.table-borderless > thead > tr > th {
    border: none;
}

2
不要忘记在表格主体中使用 th 元素:.borderless tbody tr th(如 示例 中所用)。 - Wietse
2
@DavidePastore 如果这只是针对表格的话,也许可以在前面加上.table-,就像Bootstrap 3为其他与表格相关的类所做的那样(例如table-striped等)。因此名称将是table-borderless - arogachev
1
适用于v4.0.0-alpha.2。谢谢! - Dominofoe
直到我在这个样式规范的开头添加了.table-borderless,,我仍然在表格底部得到了一个边框。 - Christopher King
我在这个文档 https://getbootstrap.com/docs/3.3/css/#tables 中没有看到 table-borderless。它是从哪里来的? - Arup Rakshit

347

12
请注意:你还应该添加 .borderless th,因为Bootstrap样式也适用于 <th> - BenMorel
11
如果你正在使用Bootstrap 3,请查看我的回答 - Davide Pastore
49
我不得不添加border: none !important;才能使它正常工作。 - Srikanth Jeeva
!important 非常重要。 - FLICKER
1
对于Bootstrap > 4.1,请按照Max的建议使用<table class='table table-borderless'> - tomb
显示剩余2条评论

26

类似于其余内容,但更具体:

    table.borderless td,table.borderless th{
     border: none !important;
}

你不需要使用.table.borderless时加上important - undefined
@Sam Jones - 这会影响整个表格吗?我想让某些行有底部边框。我想要去掉上边框。 - MarcoZen
1
!important 非常重要。 - FLICKER

20
不要将.table类添加到您的<table>标签中。根据Bootstrap文档上有关表格的描述:
引用:

对于基本样式-轻盈的内边距和仅水平分隔线-将基础类.table添加到任何<table>中。这似乎非常冗余,但考虑到表格在其他插件(如日历和日期选择器)中的广泛使用,我们选择了隔离自定义表格样式。


即使像这样: html:<table class='borderless'> css: .borderless { border:none; } 它也不起作用。 - Romain
2
我建议在Chrome中使用Web检查器,看看是否应用了任何边框,因为在使用Bootstrap与其他组件(如日期选择器)进行互操作时,默认情况下表格不具有边框。 - Martin Bean
6
这很有效,我只是使用了“table-condensed”和其他变体,没有使用“table”类,并且去掉了边框。这是个很好的技巧,因为文档有点让我感到困惑。 - chrismacp

16

自Bootstrap v4.1以来,您可以将 table-borderless 添加到您的表格中,有关详细信息请参见官方文档

<table class='table table-borderless'>

不幸的是,我正在使用它,但仍然出现边框,这对我来说毫无意义,这就是我来到这里并看到4.x及以上版本的建议,但它仍然显示边框,所以我需要知道原因。有任何想法吗? - GµårÐïåñ

8

使用npm或CDN链接安装Bootstrap

<table class="table table-borderless">
<thead>
<tr>
  <th scope="col">#</th>
  <th scope="col">First</th>
  <th scope="col">Last</th>
  <th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
  <th scope="row">1</th>
  <td>Mark</td>
  <td>Otto</td>
  <td>@mdo</td>
</tr>
<tr>
  <th scope="row">2</th>
  <td>Jacob</td>
  <td>Thornton</td>
  <td>@fat</td>
  </tr>
  <tr>
  <th scope="row">3</th>
    <td colspan="2">Larry the Bird</td>
    <td>@twitter</td>
   </tr>
 </tbody>
</table>

通过此链接获取参考信息。


6
在我的CSS中:
.borderless tr td {
    border: none !important;
    padding: 0px !important;
}

在我的指令中:
<table class='table borderless'>
    <tr class='borderless' ....>

我没有给td元素添加“无边框”属性。
测试过并且成功了!所有的边框和内边距都被完全去除了。

5

我按照Davide Pastore的方法扩展了Bootstrap表格样式,但是这种方法会将样式应用于所有子表格,而且不适用于页脚。

更好的解决方案是模仿核心Bootstrap表格样式,但使用你自己的新类:

.table-borderless>thead>tr>th
.table-borderless>thead>tr>td
.table-borderless>tbody>tr>th
.table-borderless>tbody>tr>td
.table-borderless>tfoot>tr>th
.table-borderless>tfoot>tr>td {
    border: none;
}

当您使用<table class='table table-borderless'>时,只有带有该类的特定表格将被边框包围,而不是树中的任何表格。


4
使用Bootstrap 4中的border-类。
<td class="border-0"></td>

或者

<table class='table border-0'></table>

确保在您想要进行的最后一次更改后结束类输入。


4

试试这个:

<table class='borderless'>

CSS

.borderless {
 border:none;
}

注意:你之前的做法没有生效是因为你的CSS代码针对的是 .borderless table 内部的表格(可能不存在)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接