1) Вы можете измерить размер текста на сервере и быть достаточно точным. Я сделал это с помощью GDI + на компьютере с Windows; не уверен, к какой ОС или библиотекам у вас есть доступ.
2) Вы можете использовать моноширинный шрифт на клиенте и определять, когда текст будет переноситься, основываясь на ширине контейнера и длине слова. Затем вы можете обрезать текст.
3) Вы не можете использовать моноширинный шрифт на клиенте, все равно делать предположения, используя скрипт, и использовать overflow: hidden
для захвата любого текста, который переполняется.