Я пытаюсь сделать строку подходящей в определенной области (td) без разрыва строки. Проблема в том, что она должна...
- При изменении размера
- Установить
Nвиды разрешения - Добавить
...в конце, когда это необходимо (и не нужно, когда это не нужно) - Примите изменения
font-size,font-weightиfont-family
Основываясь на ответах на вопрос Новона, я сделал следующий код:
CSS (//Просто добавление некоторых стилей для разрыва строки)
.truncated { display:inline-block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
jQuery (//Найдите все td, содержащие элемент .truncated. Получив реальную ширину (удалив содержимое и добавив его снова) в td. Применяя, если необходимо, minWidth на td)
jQuery('.truncated').closest('td').each(function() {
var text = jQuery(this).text();
var widthOriginal = jQuery(this).width();
var widthEmpty = jQuery(this).text('').width();
jQuery(this).text(text);
if(widthOriginal >= widthEmpty){
var width = (parseInt(widthEmpty) - 10) + 'px';
jQuery(this).css('maxWidth', width);
jQuery(this).text(text + '...');
}
});
результат (как и ожидалось из приведенного выше кода):

но это должно быть:

Я думал, может быть, попытаюсь найти первый line строки и удалить остальные, но не нашел способ сделать это (и это много "обходного пути" на мой вкус). Есть ли лучший способ сделать это?