设置表格

时间:2018-02-27 16:17:18

标签: html css html-table width

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

<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

我希望能够在单元格中设置文本的最大宽度。因此,如果单元格是300px,我怎么能将文本宽度设置为最大值,比方说200px,这样我的图标就剩下100px。这样可以防止内联图标被错误定位。我也不希望文本换行,所以我很好用它结束(或者甚至可能有一个省略号)。

我已尝试直接将“max-width”和“width:75%”属性设置为文本范围,但这不起作用(它似乎没有任何效果)。

这是我用于该列的CSS:

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

因此列/ td宽度设置为360px,因此我需要能够在代表文本的范围上设置较小的最大宽度,或者是否可以在文本开始包装时设置。 / p>

3 个答案:

答案 0 :(得分:0)

您需要一个单元格的宽度以及包装文本的第一个跨度。如果指定相对宽度(例如:%),则必须使包装(td)宽度固定。

答案 1 :(得分:0)

您可以使用javascript。但首先要这样做。将标识添加到td标记并将其值设置为td1

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

将字体大小替换为td标记中使用的文本的字体大小。如果您还没有定义文本的大小,请立即定义。

答案 2 :(得分:0)

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

我刚刚添加了第3列,其中包含内嵌图标。我将第二行的宽度减小到300px,并将第三列宽度设置为60px。所以最终结果如下:

<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纯粹地做到这一点。

谢谢你们!