如何设置<td>的固定宽度?

use*_*621 472 css html-table width twitter-bootstrap

简单方案:

  <tr class="something">
    <td>A</td>
    <td>B</td>
    <td>C</td>
    <td>D</td>
  </tr>
Run Code Online (Sandbox Code Playgroud)

我需要设置一个固定的宽度<td>.我试过了:

tr.something {
  td {
    width: 90px;
  }
}
Run Code Online (Sandbox Code Playgroud)

td.something {
  width: 90px;
}
Run Code Online (Sandbox Code Playgroud)

对于

<td class="something">B</td>
Run Code Online (Sandbox Code Playgroud)

乃至

<td style="width: 90px;">B</td>
Run Code Online (Sandbox Code Playgroud)

但宽度<td>仍然相同.

Pau*_*ulo 1009

对于Bootstrap 4.0:

在Bootstrap 4.0.0中,您无法col-*可靠地使用这些类(适用于Firefox,但不适用于Chrome).你需要使用OhadR的答案:

<tr>
  <th style="width: 16.66%">Col 1</th>
  <th style="width: 25%">Col 2</th>
  <th style="width: 50%">Col 4</th>
  <th style="width:  8.33%">Col 5</th>
</tr>
Run Code Online (Sandbox Code Playgroud)

对于Bootstrap 3.0:

使用twitter bootstrap 3:class="col-md-*"其中*是宽度的列数.

<tr class="something">
    <td class="col-md-2">A</td>
    <td class="col-md-3">B</td>
    <td class="col-md-6">C</td>
    <td class="col-md-1">D</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

对于Bootstrap 2.0:

使用twitter bootstrap 2使用:class="span*"其中*是宽度的列数.

<tr class="something">
    <td class="span2">A</td>
    <td class="span3">B</td>
    <td class="span6">C</td>
    <td class="span1">D</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

**如果你有<th>元素设置宽度而不是<td>元素.

  • 如果您有超过12列,会发生什么? (75认同)
  • 您只能在每个<th>标记的<head>中应用它,并且所有行都匹配 (30认同)
  • 这可行,但它不在引导站点上,因为那些col-*类不应该以这种方式使用.它们旨在用于响应式引导网格.如果您喜欢这些,请考虑为它们查看CSS并将其复制以制作您自己的CSS. (25认同)
  • Bootstrap网站上有关于此的文档吗? (7认同)

DDD*_*DDD 121

我遇到了同样的问题,我修复了表格,然后指定了我的td宽度.如果你有,你也可以做到.

table {
    table-layout: fixed;
    word-wrap: break-word;
}
Run Code Online (Sandbox Code Playgroud)

模板:

<td style="width:10%">content</td>
Run Code Online (Sandbox Code Playgroud)

请使用CSS构建任何布局.


sto*_*ild 70

您可以创建一个类并将其应用于标记,而不是将col-md-*类应用于td行中的每个colgroupcol.

    <table class="table table-striped">
        <colgroup>
            <col class="col-md-4">
            <col class="col-md-7">
        </colgroup>
        <tbody>
        <tr>
            <td>Title</td>
            <td>Long Value</td>
        </tr>
        </tbody>
    </table>
Run Code Online (Sandbox Code Playgroud)

在这里演示

  • 我更喜欢这个,但它似乎对我的情况没有影响,列宽不会通过 col-md-* 扩展 (2认同)

meo*_*yte 53

如果您在<table class="table">桌面上使用,Bootstrap的表类会向表中添加100%的宽度.您需要将宽度更改为自动.

此外,如果表的第一行是标题行,则可能需要将宽度添加到th而不是td.


Oha*_*adR 48

希望这个会帮助某人:

<table class="table">
  <thead>
    <tr>
      <th style="width: 30%">Col 1</th>
      <th style="width: 20%">Col 2</th>
      <th style="width: 10%">Col 3</th>
      <th style="width: 30%">Col 4</th>
      <th style="width: 10%">Col 5</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Val 1</td>
      <td>Val 2</td>
      <td>Val 3</td>
      <td>Val 4</td>
      <td>Val 5</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

https://github.com/twbs/bootstrap/issues/863


Thi*_*PXP 36

在我来说,我是能够通过使用来解决这个问题min-width: 100px,而不是width: 100px在细胞thtd.

.table td, .table th {
    min-width: 100px;
}
Run Code Online (Sandbox Code Playgroud)

  • 这可能保留了我的理智. (13认同)
  • 尽管最大宽度不起作用:( (3认同)

H0W*_*ARD 32

对于Bootstrap 4,您只需使用类助手:

<table class="table">
  <thead>
    <tr>
      <td class="w-25">Col 1</td>
      <td class="w-25">Col 2</td>
      <td class="w-25">Col 3</td>
      <td class="w-25">Col 4</td>
    </tr>
  </thead>
  <tbody>
    <tr>
      ...
Run Code Online (Sandbox Code Playgroud)

  • 请注意,唯一的w- *选项是:.w-25,.w-50,.w-75,.w-100,.w-auto`,因此,如果您需要其他选项,请说,`w- 10`,则需要添加`.w-10 {width:10%!important; }`到本地化的CSS文件。 (10认同)
  • 这适合我的用例.谢谢! (3认同)
  • 对于Bootstrap 4效果很好,谢谢! (2认同)

Mar*_*ins 16

Bootstrap 4 和 5 有一个宽度实用程序,用于调整 html 元素宽度示例:

<tr class="w-50">
    <td class="w-25">A</td>
    ...
</tr>
Run Code Online (Sandbox Code Playgroud)


Roh*_*har 9

试试这个 -

<style>
 table { table-layout: fixed; }
 table th, table td { overflow: hidden; }
</style>
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一一个适用于所有其他答案的人. (3认同)

Hit*_*ahu 7

这个组合的解决方案对我有用,我想要等宽的列

<style type="text/css">

    table {
        table-layout: fixed;
        word-wrap: break-word;
    }

        table th, table td {
            overflow: hidden;
        }

</style>
Run Code Online (Sandbox Code Playgroud)

结果: -

在此输入图像描述


Ran*_*man 6

Bootstrap 4.0

在Bootstrap 4.0上,我们必须通过添加类d-flex将表行声明为flex-boxes,并删除xs,md,后缀以允许Bootstrap从视口自动派生它。

因此它将看起来如下:

<table class="table">
    <thead>
        <tr class="d-flex">
            <th class="col-2"> Student No. </th>
            <th class="col-7"> Description </th>
            <th class="col-3"> Amount </th>
        </tr>
    </thead>

    <tbody>
        <tr class="d-flex">
            <td class="col-2">test</td>
            <td class="col-7">Name here</td>
            <td class="col-3">Amount Here </td>
        </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

希望这对外面的人有帮助!

干杯!