使Bootstrap表列适合内容

Oct*_*oid 63 html css twitter-bootstrap

我正在使用Bootstrap,并绘制一个表格.最右边的列中有一个按钮,我希望它下拉到适合所述按钮所需的最小尺寸.

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<table class="table table-responsive">
        <tbody>
            <tr>
                <th>Name</th>
                <th>Payment Method</th>
                <th></th>
            </tr>
            <tr>
                <td>Bart Foo</td>
                <td>Visa</td>
                <td><a role="button" class="btn btn-default btn-xs" href="/Payments/View/NnrN_8tMB0CkVXt06nkrYg">View</a></td>
            </tr>
        </tbody>
    </table>
Run Code Online (Sandbox Code Playgroud)

这呈现如下:

表格示例

随着一些firebug突出显示,列宽已经出现这么广泛:

列宽

该列与页面缩放,而页面处于较大的动态宽度模式.我知道如何在纯CSS中修复它,但大多数这些方法可能会导致网站的低宽度版本出现问题.

如何将该列下拉到其内容的宽度?

(一如既往 - 现有的bootstrap类>纯CSS> Javascript)

tmg*_*tmg 127

创建一个适合表格单元格宽度的类到内容

.table td.fit, 
.table th.fit {
    white-space: nowrap;
    width: 1%;
}
Run Code Online (Sandbox Code Playgroud)

  • Gah - 我把它放在一个'td`规则中,然后将它应用到`th` - 它完美地工作,谢谢.:)(希望你不介意,我也在你的答案中添加了规则) (6认同)

MER*_*ĞAN 22

w-auto native bootstrap 4添加到table元素,您的 table 将适合其内容。

在此处输入图片说明

  • 但OP需要只有最右边的列具有自动宽度,而不是所有列...... (7认同)
  • 这个在 Firefox 中对我有用,它是一个真正的 Boostrap 解决方案。 (4认同)

Dex*_*ter 11

这个解决方案都不适合我.在td最后一栏仍然需要全宽.所以这是解决方案的工作原理.在Bootstrap上测试4

加入table-fit你的table

table.table-fit {
    width: auto !important;
    table-layout: auto !important;
}
table.table-fit thead th, table.table-fit tfoot th {
    width: auto !important;
}
table.table-fit tbody td, table.table-fit tfoot td {
    width: auto !important;
}
Run Code Online (Sandbox Code Playgroud)

这是一个sass用途.

@mixin width {
    width: auto !important;
}

table {
    &.table-fit {
        @include width;
        table-layout: auto !important;
        thead th, tfoot th  {
            @include width;
        }
        tbody td, tfoot td {
            @include width;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Ped*_*ter 8

有点老问题,但我来到这里寻找这个.我希望桌子尽可能小,适合它的内容.解决方案是简单地将表格宽度设置为任意小的数字(例如1px).我甚至创建了一个CSS类来处理它:

.table-fit {
    width: 1px;
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

<table class="table table-fit">
Run Code Online (Sandbox Code Playgroud)

示例:JSFiddle

  • 问题仅涉及表的某些列,而不涉及表的所有列 (2认同)
  • 是的,但需要找到解决问题的方法,我到了这里.我在答案中解释了这一点. (2认同)
  • 对于这个问题,这仍然是一个不恰当和错误的答案. (2认同)

Sam*_*a K 5

这种解决方案并不是每次都很好。但我只有两列,我希望第二列占据所有剩余空间。这对我有用

 <tr>
    <td class="text-nowrap">A</td>
    <td class="w-100">B</td>
 </tr>
Run Code Online (Sandbox Code Playgroud)