为什么Twitter Bootstrap表始终具有100%的宽度?


148

假设此标记:

<table class="table table-bordered" align="center"> 

不知道我有多少个单元格,表格始终是100%宽度。为什么?


3
因为它有效地利用了父母的宽度;这就是网格系统应该如何工作!
维沙尔(Vishal)2012年

您想要桌子多大宽度?
安德烈斯·伊里奇

1
我想这是对细胞的数量depent,就像普通表
skowron线

1
对于那些搜索如何通过跨度设置像div宽度这样的单元格宽度的人,请查看此答案
alexche8 2014年

Answers:


228

引导程序中的所有表都会根据其容器进行拉伸,您可以通过将表放置在.span*您选择的网格元素中轻松地进行操作。如果要删除此属性,则可以创建自己的表类,然后将其添加到要扩展的表中,其中的内容如下:

.table-nonfluid {
   width: auto !important;
}

您可以在自己的样式表中添加此类,然后将其添加到表的容器中,如下所示:

<table class="table table-nonfluid"> ... </table>

这样,您所做的更改将不会影响引导样式表本身(您可能希望在文档中的其他位置使用流畅的表)。


1
如果将表格放置在span *标记内,为了使表格居中,是否也要包含offset *?
HPWD

@dlackey是的,您可以使用类偏移表以使其居中,甚至.span*可以在表中添加类以使其具有一定的宽度。
Andres Ilich

2
至少自举3只加入后为我工作!importantwidth: auto
geekQ

我们必须为表使用bootstarp的span类,或者我们必须手动为.span类提供样式,-Jot
Dhaliwal

1
警告。如果与.table-active和.table-bordered结合使用,请务必小心。当屏幕宽度小于767px时,边框将应用于.table-response容器。(bootstrap 3.x)
Stuart



13

答案1:

为什么要打架?为什么不使用引导网格简单地控制表格宽度呢?这是Bootstrap 3标记。

<div class="row">
    <div class="col-sm-6">
        <table></table>
    </div>
</div>

这将创建一个表,该表是包含元素宽度的一半(12个中的6个)。

有时我会根据其他答案使用内联样式,但不建议这样做。

答案2:

如果您使用的是Bootstrap 4,它具有一些不错的宽度帮助类,例如:

w-25, w-50, w-75, and w-100

这是文档:https//getbootstrap.com/docs/4.0/utilities/sizing/


2
这是迄今为止最简单的解决方案,应该是公认的答案
Jeff Brown

12

我遇到了同样的问题,我将表格固定了,然后指定了td宽度。如果您有,也可以做。

<style>
table {
table-layout: fixed;
word-wrap: break-word;
}
</style>

<td width="10%" /td>

我没有.table-nonfluid的运气。


1
试试width: auto !important;
Leo

您可以避免!important(这是一种不好的做法)。请参阅下面答案的评论。
Ollie Bennett 2014年

3

我已经尝试添加style="width: auto !important"并且对我来说效果很好!


1
如果您确保自定义CSS出现在Bootstrap CSS之后(例如,自定义样式<link>标签出现在Bootstrap 标签下面<link>),则规则将按设计级联,并且您根本不需要使用!important异常。这是正确的,因为width: 100%;tableBootstrap CSS中定义的,因此也将取代您的width: auto;规则。
Ollie Bennett

并不是真正的答案,最好编辑大多数人都读过的当前接受的答案(我现在对其进行了编辑)
Iulian Onofrei 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.