设置表格中文本的最大宽度 td

Posted

技术标签:

【中文标题】设置表格中文本的最大宽度 td【英文标题】:Set max-width of text within a table td 【发布时间】:2018-08-07 08:52:27 【问题描述】:

我有一个两列的表。第二列包含包含一些文本的单元格,然后是两个可以单击以执行某些操作的内联图标。但是,如果文本太长,则内联图标会在下降/换行到下一行时开始看起来很奇怪。代码基本上是:

<td class="column-2">
    <span>...My very long text goes here...</span>
    <span class="inline-icon-one"></span>
    <span class="inline-icon-two"></span>
</td>

This is what the normal cell should look like

This is what it looks like with the long text

我希望能够设置单元格内文本的最大宽度。因此,如果单元格是 300 像素,我如何将文本宽度设置为最大,比如说 200 像素,这样我的图标就有 100 像素了。这将防止内联图标的位置不正确。我也不希望文本换行,所以我可以接受它只是结束(或者甚至可能有一个省略号)。

我尝试直接为文本跨度设置“最大宽度”和“宽度:75%”属性,但这不起作用(它似乎没有任何效果)。

这是我用于列的 CSS:

td.column-2 
    padding-left: 20px;
    height: 55px;
    width: 360px;
    vertical-align: middle;
    word-wrap: break-word;
    border-right: 1px solid transparent;

所以 column/td 宽度设置为 360px,所以我需要能够在表示文本的 span 上设置较小的 max-width,或者是否可以设置文本开始换行的时间。

【问题讨论】:

你的代码在哪里? 为 column-2 类添加了 html 和 CSS。 【参考方案1】:

您需要为您的单元格设置一个宽度,以及您的第一个环绕文本的跨度。如果您指定相对宽度(例如:%),则必须将 wrapper(td) 宽度固定。

【讨论】:

【参考方案2】:

您可以使用 javascript。但首先要做到这一点。将 id 添加到 td 标签并将其值设置为 td1

<script>
var a = document.getElementById("td1");
var b = a.innerText.length * (your font size) + "px";
a.style.width=b;
</script>

将您的字体大小替换为 td 标记中使用的文本的字体大小。如果您还没有定义文本的大小,那么现在就定义。

【讨论】:

【参考方案3】:

我认为我找到了最适合我的情况的解决方案:

我刚刚添加了第三列来保存内联图标。我将第二行的宽度减小到 300 像素,并将第三列的宽度设置为 60 像素。所以它最终是这样的:

<td class="column-2">
    <span>...My very long text goes here...</span>
</td>
<td class="column-3">
    <span class="inline-icon-one"></span>
    <span class="inline-icon-two"></span>
</td>

使用 CSS:

td.column-2 
    padding-left: 20px;
    height: 55px;
    width: 300px;
    vertical-align: middle;
    word-wrap: break-word;
    border-right: 1px solid transparent;

td.column-3 
    height: 55px;
    width: 60px;
    vertical-align: middle;
    word-wrap: break-word;
    border-right: 1px solid transparent;

有一个答案提到使用 javascript,但我希望在我的情况下避免这种情况,并且能够纯粹通过 HTML 和 CSS 来实现。

谢谢大家!

【讨论】:

以上是关于设置表格中文本的最大宽度 td的主要内容,如果未能解决你的问题,请参考以下文章

如何在所有行中将列缩小到该列的最大宽度,例如表格中的 td 宽度?

CSS 表格 td 宽度 - 固定,不灵活

在表格中设置 TD 中的 div 宽度

设置表格td宽度

html 中表格的宽度 怎么控制

IE8 table表格th、td设置宽度的坑