javascript / php - сокращает строку, чтобы уместиться в определенное количество строк - PullRequest
2 голосов
/ 18 мая 2010

У меня есть строка, которая должна помещаться в поле и должна быть не более 3 строк. Чтобы сократить его, я планирую обрезать его и завершить его с помощью «...». Я мог бы сократить его до определенного количества символов, но если я сделаю так, чтобы оно выглядело хорошо с "wwwwwwwww [...] wwww", то с "iiiiiiiiiii [...] iiii" это будет выглядеть неправильно.

Есть ли какой-нибудь способ, которым я могу сократить его на то, сколько места займет строка, в отличие от того, сколько символов в строке без использования шрифта фиксированной ширины? В идеале я хотел бы сделать это на стороне сервера (php), но признать, что фактическая ширина символов гораздо более вероятна, чем на стороне клиента (JS / jQuery)

Мало

пс. Пожалуйста, не "просто создайте изображение '...' и наложите его на конец строки" хаки или аналогичные - я на самом деле хочу сократить строку до соответствующей длины

Ответы [ 5 ]

2 голосов
/ 18 мая 2010
2 голосов
/ 18 мая 2010

Для этого есть imageftbbox и imagettfbbox .

1 голос
/ 18 мая 2010

Этот сайт предлагает такой же способ, как и любой другой, и является кросс-браузерным. Мне нравится простота:

0 голосов
/ 13 августа 2010

Для этого есть несколько плагинов jQuery: http://plugins.jquery.com/taxonomy/term/2229

0 голосов
/ 18 мая 2010

Я никак не могу придумать, как легко получить размеры шрифта в той степени, о которой вы говорите, но может быть хак, который "появится" так, как вы хотите. Я полагаю, поскольку вы упомянули три строки, мы говорим об элементе <textarea>:

<textarea rows="3" cols="50" style="overflow:hidden;"></textarea>

Хотя текст есть, он не отображается и полосы прокрутки не отображаются.

...