css Bootstrap 4文本截断在表格单元格中无效

zed5wv10  于 2023-03-24  发布在  Bootstrap
关注(0)|答案(2)|浏览(153)

关于Bootstrap 3中的这个问题,SE上有几个问题,这些问题已经通过添加一个自定义类得到了解决。Bootstrap 4包括一个文本截断类,用于限制元素内文本的显示。我们已经在网站的某些部分使用了它,没有问题。
然而,当应用到表格单元格时,它不起作用。下面是我们尝试的-实际上,表格中有多个列,但我将其缩减为一个。

<table class="table table-striped table-bordered table-hover table-hover-cursor" id="tblData">
<thead class="thead-light">
<tr>
  <th scope="col" data-bind="tableSort: { arr: _data, propName: 'text()'}">Text</th>
</tr>
</thead>
<tbody data-bind="foreach: pagedData">
    <tr>
        <td data-bind="text: text()" class="text-truncate"></td>
    </tr>
</tbody>
</table>

关于这个问题还有很多其他的问题,建议你需要把文本放在一个span中才能让它工作,但是这也不起作用。

<tr>
    <td>
      <span data-bind="text: text()" class="text-truncate"></span>
    </td>
</tr>

我也试过把类移到td上,并在td和span上都有它,但都不起作用。
另一个常见的建议是添加text类。虽然这似乎不是Bootstrap中的默认类。这也不起作用。

<tr>
    <td>
      <span data-bind="text: text()" class="text text-truncate"></span>
    </td>
</tr>

同样,在td上移动或复制类不会有任何区别。我不确定是否需要大小限制,所以我尝试了这个:

<tr>
    <td data-bind="text: text()" class="col-md-2 text-truncate"></td>
</tr>

但文本仍然显示完整,没有省略号。
在所有情况下,我都检查了元素,以确保它选择了text-truncate类,并应用了样式,它们确实被应用了。
这确实有效:

<tr>
    <td data-bind="text: text()" class="text-truncate" style="max-width: 200px"></td>
</tr>

但是我更喜欢使用Bootstrap类。要让它工作,正确的元素和类集合是什么?

w8f9ii69

w8f9ii691#

AFAIK如果表格列的宽度不固定,没有Bootstrap类可以解决这个问题。最简单的解决方案是用途:

.table {
    table-layout: fixed;
}

https://www.codeply.com/go/NysJfvWtst

roqulrg3

roqulrg32#

不要将class="text-truncate"放在<td>元素本身上,而是将其移动到具有定制类的嵌套span中

<td>
  <span class="my-class text-truncate">Super long text goes here</span>
</td>
.my-class {
  display: inline-block;
  max-width: 10rem;
}

相关问题