Перенос строки по словам
Здравствуйте, есть некоторая длинная строка, необходимо реализовать разбиение строки с переносом чтобы данный текст вмещался в определенную ширину.
Текст вывожу raphael'ем когда подписываю оси raphael.text( x, y, 'текст') или же есть же есть какое нибудь более простое решение например график рисовать через рафаель, а оси подписывать скажем под ним html'ем в блоке div |
Цитата:
1) "длину текста в пикселях" можно узнать так: помести текст в div (position: absolute) и зацени offsetWidth этого дива. 2) Топорное решение влоб - разбить текст на слова, далее в некоторую строку прибавлять по слову, вычислять ширину (п.1) и смотреть, не слишком ли большая (сравнивай с W). Когда слово не сможет вместиться, добавляй строку в копилку, и начинай так же собирать вторую строку. И т.д. 3) Много операций со строками. Можно оптимизировать - сначала помести весь текст в <div style="width:Wpx"><span></span></div> (внутрь спана), и посмотри span.getClientRects(). оно вернет набор прямоугольников, на которые разбился спан при переносе слов. width этих прямоугольников можно взять за первое приближение при разбивке, там интерполировать по количествам символов, найти ближайшие пробелы и т.д. |
Часовой пояс GMT +3, время: 09:08. |