提问者:小点点

根据内容调整单元格宽度


给定以下标记,如何使用CSS强制一个单元格(列中的所有单元格)适合其中内容的宽度,而不是拉伸(这是默认行为)?

td.block {
  border: 1px solid black;
}
<table style="width: 100%;">
  <tr>
    <td class="block">this should stretch</td>
    <td class="block">this should stretch</td>
    <td class="block">this should be the content width</td>
  </tr>
</table>

我意识到我可以硬编码宽度,但我宁愿不这样做,因为该列中的内容是动态的。

看下图,第一张图片是标记产生的。第二张图片是我想要的。


共3个答案

匿名用户

我不确定我是否理解你的问题,但我会试一试:

td {
    border: 1px solid #000;
}

tr td:last-child {
    width: 1%;
    white-space: nowrap;
}
<table style="width: 100%;">
    <tr>
        <td class="block">this should stretch</td>
        <td class="block">this should stretch</td>
        <td class="block">this should be the content width</td>
    </tr>
</table>

匿名用户

设置

max-width:100%;
white-space:nowrap;

会解决你的问题。

匿名用户

对我来说,这是表格及其列最好的自动拟合和自动调整大小(使用css!重要的…只有当你不能没有的时候)

.myclass table {
    table-layout: auto !important;
}

.myclass th, .myclass td, .myclass thead th, .myclass tbody td, .myclass tfoot td, .myclass tfoot th {
    width: auto !important;
}

不要为表格或表格列指定css宽度。如果表格内容较大,它将超过屏幕大小。