Я пытаюсь сделать строку подходящей в определенной области (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
строки и удалить остальные, но не нашел способ сделать это (и это много "обходного пути" на мой вкус). Есть ли лучший способ сделать это?