Есть два способа добиться этого. Один с использованием JavaScript, а другой с использованием CSS
С использованием CSS: (Рекомендуемый способ)
Css имеет свойство под названием text-overflow: ellipsis;
, это свойство обрезает текст для fixed-ширина HTML-элементы и добавляет ...
в конце. Обязательно установите max-width
и overflow: hidden
См. Во фрагменте ниже:
.text-overflow-test td {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
<table class="text-overflow-test" border="1">
<tbody>
<tr>
<td>This is short text</td>
<td>This is short text</td>
</tr>
<tr>
<td>This is very long long long very long long long very long long long text</td>
<td>This is very long long long very long long long very long long long text</td>
</tr>
</tbody>
</table>
Использование Javascript:
Убедитесь, что длина больше 15. Отрежьте текст и добавьте ... в конце.
const data = [
{text: "less than 15"},
{text: "This text is a lot more than just 15 characters"},
{text: "15 characters"},
]
const slicer = (text) => text.length > 15 ? text.slice(0,15) + '...' : text
const slicedData = data.map(obj => {
return {
text: slicer(obj.text)
}
})
console.log(slicedData)
Способ javascript не рекомендуется, поскольку он изменяет фактические данные, которые вы передаете в таблицу, что приводит к потере информации.