Я не уверен, что существует какой-либо точный способ измерить ширину текста в пикселях (именно это вы действительно ищете в корне вашей проблемы), поскольку каждый браузер может отображать шрифты по-своему. Возможно, вы захотите попробовать использовать этот CSS-код, в дополнение к некоторому «нечеткому» изменению размера в зависимости от количества букв в предложении. Вы можете попробовать использовать шрифт (или стиль) фиксированной ширины для отображения текста, чтобы каждый символ занимал одинаковое количество места. Таким образом, вы можете сделать правильное предположение, и CSS, по крайней мере, даст вам хорошее «...» перед обрезкой текста, если это необходимо.
.truncate
{
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}