jsp设置<td>宽度问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp设置<td>宽度问题相关的知识,希望对你有一定的参考价值。

我需要设置其中一个<td>的宽度,可是一写宽度,就只有那么宽,我写再宽它都不变,而且如果其他的<td>中文字很多的话,他会把我需要定义宽度的格子给挤更窄了。求大神帮忙,急!

这个应该是设置CSS样式吧 如果只是一个的话 就直接在行内设置样式啦 参考技术A 你如果定义td的宽度的话,那么这一行中的所有td宽度加起来要是table的宽度。如果不是,那肯定会出现你说的效果。本回答被提问者采纳

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

【中文标题】设置表格中文本的最大宽度 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 来实现。

谢谢大家!

【讨论】:

以上是关于jsp设置<td>宽度问题的主要内容,如果未能解决你的问题,请参考以下文章

让同一table内的不同td占有的宽度不同.有关网页编辑。

<td>标签改变宽度

table td合并后的宽度怎么设置?

如何设置 <td> 宽度以直观地截断其显示的内容?

table中td比设定的宽度大

如何使用百分比设置表格单元格的最大宽度?