如何根据内容使表格单元缩小?

Pav*_* S. 45 html css html-table width

如何使包含2列(单元格)的表格如下所示:

  • 第一个细胞根据内容收缩
  • 另一个单元格适合表格的其余部分(比两个内容更宽)

例:

<table style="width: 500px;">
   <tr>
      <td>foo</td>
      <td>bar</td>
   </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我需要这个表看起来像这样:

.___________________________________________________________________________.
| foo | bar            <a lot of space here>                                |
|_____|_____________________________________________________________________|
                           500 px total width
Run Code Online (Sandbox Code Playgroud)

注意:我不知道"foo"的宽度,所以我不能设置"50px","10%"或类似的东西.

scu*_*mah 45

您可以将width第二个单元格设置为100%

HTML:

<table>
   <tr>
      <td>foo</td>
      <td class="grow">bar</td>
   </tr>
</table>?
Run Code Online (Sandbox Code Playgroud)

CSS:

table { width: 500px; }
.grow { width: 100%; }?
Run Code Online (Sandbox Code Playgroud)

检查这个小提琴.

  • 这只适用于表格中`table-layout`设置为`auto`的情况.这是默认设置,但通常将`table-layout`设置为`fixed`,这将导致100%的值按字面意思(单元格将跨越整个表格,所有单元格将重叠). (21认同)

小智 35

我知道这是几年前被问过的.OP现在可能已经解决了.但这对某人来说仍然有用.所以我发布了对我有用的东西.这就是我对我的所作所为.我将宽度设置为接近零,将其缩小,然后将白色空间设置为nowrap.解决了.

td {
width:0.1%;
white-space: nowrap;
} 
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.(+ 8个字符) (3认同)
  • 谢谢!有趣的是,宽度为"0"没有任何影响,但你的"0.1%"似乎是一个很好的黑客来实现这一目标. (3认同)
  • 就个人而言,我选择了宽度:1px。好主意纳特! (3认同)
  • @SnailCoil 当其他列使用加起来小于 100% 的百分比时,1px 不起作用。我的列可以动态隐藏,因此它们不能总是添加到 100%(并且不想重新计算)。纳特的回答非常有效,解决了我一年多来遇到的问题。 (3认同)

Shu*_*gam 5

设置此:

td {
    max-width:100%;
    white-space:nowrap;
}
Run Code Online (Sandbox Code Playgroud)

这样可以解决您的问题。