Вы можете создавать элемент и добавлять к нему символы, пока не обнаружите перенос, например, наблюдая за изменениями в offsetHeight
(вы можете оптимизировать его, используя алгоритм деления пополам).
Это, конечно, очень зависит от браузера, системы, установленных шрифтов и настроек пользователя, поэтому вам придется рассчитывать его для каждого фрагмента текста каждый раз, когда страница отображается, изменяется размер или когда пользователь меняет размер шрифта (даже при полном увеличении страницы) вносит некоторые ошибки, которые могут привести к изменению количества символов).
Следовательно, в большинстве случаев это может быть излишним, а при плохом внедрении создавать больше проблем, чем решить.
Существуют и другие решения, например, если вы хотите, чтобы была видна только одна строка, вы можете использовать white-space:nowrap
и overflow:hidden
, а в некоторых браузерах text-overflow:ellipsis
, чтобы сделать текст аккуратно. Или, если вы не хотите обрезать слова, используйте 1-строчный контейнер с overflow:hidden
.