如何在Bootstrap响应表中设置列的大小


81

如何在Bootstrap响应表中设置列的大小?我不希望桌子失去响应能力。我也需要它在IE8中工作。我已包含HTML5SHIV和“响应”。

我正在使用Bootstrap 3(3.2.0)

<div class="table-responsive">
    <table id="productSizes" class="table">
        <thead>
            <tr>
                <th>Size</th>
                <th>Bust</th>
                <th>Waist</th>
                <th>Hips</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>6</td>
                <td>79 - 81</td>
                <td>61 - 63</td>
                <td>89 - 91</td>
            </tr>
            <tr>
                <td>8</td>
                <td>84 - 86</td>
                <td>66 - 68</td>
                <td>94 - 96</td>
            </tr>
        </tbody>
    </table>
</div>

1
您可以为列设置最大宽度
WhiteLine

我认为在bootstrap中,您可以使用诸如:之类的选项来指定列的宽度<tr class='grid_2'><td></td><tr>,因为bootstrap基于12列响应式网格,因此grid_6假设您想要100%的宽度,则需要将其应用于每一行-您应该能够找到引导程序API中的所有信息
Alex

Answers:


151

Bootstrap 4.0

请注意从Bootstrap 3到4的所有迁移更改。现在,您需要在表上通过添加class来启用flex box d-flex,并放下,xs以允许bootstrap自动检测视口。

<div class="container-fluid">
    <table id="productSizes" class="table">
        <thead>
            <tr class="d-flex">
                <th class="col-1">Size</th>
                <th class="col-3">Bust</th>
                <th class="col-3">Waist</th>
                <th class="col-5">Hips</th>
            </tr>
        </thead>
        <tbody>
            <tr class="d-flex">
                <td class="col-1">6</td>
                <td class="col-3">79 - 81</td>
                <td class="col-3">61 - 63</td>
                <td class="col-5">89 - 91</td>
            </tr>
            <tr class="d-flex">
                <td class="col-1">8</td>
                <td class="col-3">84 - 86</td>
                <td class="col-3">66 - 68</td>
                <td class="col-5">94 - 96</td>
            </tr>
        </tbody>
    </table>

引导

Bootstrap 3.2

列的宽度与网格使用相同的布局;使用col-[viewport]-[size]。请记住,列大小总计应为12;1 + 3 + 3 + 5 = 12在这个例子中。

        <thead>
            <tr>
                <th class="col-xs-1">Size</th>
                <th class="col-xs-3">Bust</th>
                <th class="col-xs-3">Waist</th>
                <th class="col-xs-5">Hips</th>
            </tr>
        </thead>

记住要设置<th>元素而不是<td>元素,以便设置整个列。这是工作中的BOOTPLY

感谢@Dan提醒我始终首先使用移动视图(col-xs-*)。


1
@ user3362232立即修复;感谢您的评论;我强调的是使用不同大小的列的情况。我用数学搜索了一下以确保这次。
Jordan.JD 2014年

1
毫无疑问,知道了,也许我错过了……我只是说,因为我相信默认值应该是这样,col-xs-..因为它将始终响应并由大屏幕继承。而col-lg-..仅适用于大屏幕。
2014年

2
如果<th>表中没有元素怎么办?
mrudult

2
刚刚使用Bootstrap 4进行​​了测试,它在Chrome和Opera中不起作用。
JFloresI

1
@JFloresI,当前答案为3.2,将很快以v4部分更新。
Jordan.JD

32

您可以使用内联样式并在<th>标记中定义宽度。使其宽度的总和= 100%。

    <tr>
        <th style="width:10%">Size</th>
        <th style="width:30%">Bust</th>
        <th style="width:50%">Waist</th>
        <th style="width:10%">Hips</th>
    </tr>

引导演示

通常,使用内联样式并不理想,但是这样做确实提供了灵活性,因为您可以获得非常具体且精确的宽度。


2
如果您需要确保列的宽度相等或某种比例的宽度,则效果很好。似乎宽度的百分比也不必相加100%,因此也可以轻松地用于动态表(至少对于Chrome而言)
kashiraja

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.