如何设置固定宽度?

时间:2013-02-27 14:50:11

标签: css twitter-bootstrap width html-table

简单方案:

  <tr class="something">
    <td>A</td>
    <td>B</td>
    <td>C</td>
    <td>D</td>
  </tr>

我需要为<td>设置固定宽度。我试过了:

tr.something {
  td {
    width: 90px;
  }
}

另外

td.something {
  width: 90px;
}

代表

<td class="something">B</td>

甚至

<td style="width: 90px;">B</td>

<td>的宽度仍然相同。

22 个答案:

答案 0 :(得分:941)

对于Bootstrap 4.0:

在Bootstrap 4.0.0中,您无法可靠地使用col-*类(适用于Firefox,但不适用于Chrome)。 您需要使用OhadR's answer

<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>

对于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>

对于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>

**如果您有<th>个元素设置宽度,而不是<td>元素。

答案 1 :(得分:111)

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

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

模板:

<td style="width:10%">content</td>

请使用CSS构建任何布局。

答案 2 :(得分:68)

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

    <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>

演示here

答案 3 :(得分:53)

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

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

答案 4 :(得分:37)

希望这个会帮助别人:

<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>

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

答案 5 :(得分:34)

就我而言,我可以使用min-width: 100px代替width: 100px来修复单元格thtd

.table td, .table th {
    min-width: 100px;
}

答案 6 :(得分:24)

对于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>
      ...

答案 7 :(得分:9)

试试这个 -

<style>
 table { table-layout: fixed; }
 table th, table td { overflow: hidden; }
</style>

答案 8 :(得分:7)

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

<style type="text/css">

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

        table th, table td {
            overflow: hidden;
        }

</style>

结果: -

enter image description here

答案 9 :(得分:4)

Bootstrap 4.0

在Bootstrap 4.0上,我们必须通过添加类d-flex将表行声明为弹性框,并删除xs,md,suffix以允许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>

希望这对其他人有帮助!

干杯!

答案 10 :(得分:3)

好的,我只知道问题出在哪里 - 在Bootstrap中设置为width元素的默认值select,因此解决方案是:

tr. something {
  td {
    select {
      width: 90px;
    }
  }
}

其他任何东西都不起作用。

答案 11 :(得分:2)

如果没有页面html或其他CSS的上下文,很难判断。您的CSS规则不会影响td元素的原因可能有很多。

您是否尝试过更具体的CSS选择器,例如

tr.somethingontrlevel td.something {
  width: 90px;
}

这可以避免CSS被引导程序css中的更具体的规则覆盖。

(顺便说一句,在带有style属性的内联css示例中,拼写错误的宽度 - 这可以解释为什么尝试失败!)

答案 12 :(得分:2)

我一直在努力解决这个问题,所以以防有人和我犯同样的愚蠢错误...... 在<td>内,我使用了white-space:pre样式的元素。这使我的所有table / tr / td技巧都被丢弃了。当我删除该样式时,突然我的所有文本都在td内完美地格式化了。

因此,请务必检查主容器(例如tabletd),同时检查您是否在某处更深处取消了漂亮的代码:)

答案 13 :(得分:1)

在表格中使用固定的表格布局CSS,并设置td的百分比。

答案 14 :(得分:1)

这是我不必处理IE时经常做的事情

    <tr>
      <th scope="col" style="width: calc(1 * 100% / 12)">#</th>
      <th scope="col" style="width: calc(4 * 100% / 12)">Website</th>
      <th scope="col" style="width: calc(3 * 100% / 12)">Username</th>
      <th scope="col" style="width: calc(3 * 100% / 12)">Password</th>
      <th scope="col" style="width: calc(1 * 100% / 12)">Action</th>
    </tr>

这样,您就可以拥有一个熟悉的12列网格。

答案 15 :(得分:0)

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

<tr class="w-50">
    <td class="w-25">A</td>
    ...
</tr>

答案 16 :(得分:0)

在Bootstrap表4.x中

如果要在init参数中创建表,而不是使用HTML。

您可以在columns属性中指定宽度参数:

$("table").bootstrapTable({
    columns: [
        { field: "title", title: "title", width: "100px" }
    ]
});

答案 17 :(得分:0)

在bootstarp 4中,您可以在表中使用rowcol-*,我按如下方式使用

<table class="table">
    <thead>
        <tr class="row">
            <th class="col-sm-3">3 row</th>
            <th class="col-sm-4">4 row</th>
            <th class="col-sm-5">5 row</th>
        </tr>
    </thead>
    <tbody>
        <tr class="row">
            <td class="col-sm-3">some text</td>
            <td class="col-sm-4">some text</td>
            <td class="col-sm-5">some text</td>
        </tr>
    </tbody>
</table>

答案 18 :(得分:0)

在Bootstrap 4中使用d-flex代替“ tr”的行

问题是“行”类比父容器占用的宽度更大,从而引入了问题。

<table class="table">
  <tbody>
    <tr class="d-flex">
      <td class="col-sm-8">Hello</td>
      <td class="col-sm-4">World</td>
    </tr>
    <tr class="d-flex">
      <td class="col-sm-8">8 columns</td>
      <td class="col-sm-4">4 columns</td>
    </tr>
  </tbody>
</table>

答案 19 :(得分:0)

这些都不适合我,并且在数据表上有很多列,以使%或sm类等于引导程序上的12个元素布局。

我正在使用数据表Angular 5和Bootstrap 4,并且表中有许多列。对我来说,解决方案是在TH中添加具有特定宽度的DIV元素。例如,对于cols“人名”和“活动日期”,我需要指定一个宽度,然后在col标头中放置一个div,然后将整个col宽度调整为{{ 1}}:

TH

答案 20 :(得分:0)

使用 .something ,不使用 td

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title> 
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">  
  <style>
    .something {
      width: 90px;
      background: red;
    }
  </style>
</head>
<body>

<div class="container">
  <h2>Fixed width column</h2>            
  <table class="table table-bordered">
    <thead>
      <tr>
        <th class="something">Firstname</th>
        <th>Lastname</th>
        <th>Email</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>John</td>
        <td>Doe</td>
        <td>john@example.com</td>
      </tr>
      <tr>
        <td>Mary</td>
        <td>Moe</td>
        <td>mary@example.com</td>
      </tr>
      <tr>
        <td>July</td>
        <td>Dooley</td>
        <td>july@example.com</td>
      </tr>
    </tbody>
  </table>
</div>

</body>
</html>

答案 21 :(得分:-1)

<div class="row" id="divcashgap" style="display:none">
                <div class="col-md-12">
                    <div class="table-responsive">
                        <table class="table table-default" id="gvcashgapp">
                            <thead>
                                <tr>
                                    <th class="1">BranchCode</th>
                                    <th class="2"><a>TC</a></th>
                                    <th class="3">VourNo</th>
                                    <th class="4"  style="min-width:120px;">VourDate</th>
                                    <th class="5" style="min-width:120px;">RCPT Date</th>
                                    <th class="6">RCPT No</th>
                                    <th class="7"><a>PIS No</a></th>
                                    <th class="8" style="min-width:160px;">RCPT Ammount</th>
                                    <th class="9">Agging</th>
                                    <th class="10" style="min-width:160px;">DesPosition Days</th>
                                    <th class="11" style="min-width:150px;">Bank Credit Date</th>
                                    <th class="12">Comments</th>
                                    <th class="13" style="min-width:150px;">BAC Comment</th>
                                    <th class="14">BAC Ramark</th>
                                    <th class="15" style="min-width:150px;">RAC Comment</th>
                                    <th class="16">RAC Ramark</th>
                                    <th class="17" style="min-width:120px;">Update Status</th>
                                </tr>
                            </thead>
                            <tbody id="tbdCashGapp"></tbody>
                        </table>
                    </div>
                </div>
            </div>