Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать перенос слов? нужно делить через символ тире 
:(
    Опции темы
Sukhof
Дата 29.12.2004, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 18.4.2004
Где: Тюмень

Репутация: нет
Всего: 2



Подскажите плз, как можно организовать перенос слов скажем вот так

сло-
во

и чтобы это автоматом происходило, т.е. слово не входит в ширину поля, то оно автоматом переносится.
--------------------
Не бойся делать то, что не умеешь. Помни Ковчег построил любитель, а Титаник профессионалы.
PM MAIL   Вверх
Sardar
Дата 29.12.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



На JS этото делать не нужно, браузер сам разобьёт текст. Правда слова делить он не будет, т.к. это не красиво. Если нужно поделить именно слова, то узнаём какой именно размер нам нужен, затем с большим шагом выбираем подстроку, оборачиваем её в span, узнаём размеры. Если строка малеьнкая, то следущий шаг, иначе пол шага назад. Код простой, только не пойму как это может понадобится, когда браузер делает всю рутину за тебя smile

А еще в PHP(уверен что пишешь на нём) есть полезная функция: string wordwrap ( string str [, int width [, string break [, bool cut]]]


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
mix
Дата 29.12.2004, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.2.2003

Репутация: нет
Всего: 1



Sardar
Символ переноса тогда не появиться

Нужно буквы разделить ­

с­л­о­в­о
PM MAIL   Вверх
Sardar
Дата 29.12.2004, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



mix, а он тебе нужен? Это же не красиво, обьясни задачу подробнее, может смогу убедить что ты зря теряешь время smile
Если нет, то будем парится с кодом smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Sukhof
Дата 30.12.2004, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 18.4.2004
Где: Тюмень

Репутация: нет
Всего: 2



Вообщем задача такая, php получает суммированные значения из бд, вставляет их в html таблицу. Вы когда-нибудь видели формы статистической отчетности, там такие таблицы smile дуба дать можно, пишу сетевую прогу, которая выводит эти таблицы, сводные статистические отчеты. Сам стат комитет поставляет эти таблицы, которые на а4 по вертикале не влазит их разбивают, название полей с кучей переносов, даже некоторые не по правилам русского языка, бывает такие переносы:

ав-
ар-
ий-
ны-
х.

естестно и у меня ничего не влазит при печати хоть как располагать лист (устанавливать альбомный или книжный), поэтому и нужны переносы. Ладно бы была одна таблица так вручную бы проставил переносы, так нет же мне надо сделать 16 стат форм, каждая из которых содержит до 20-25 таких таблиц


--------------------
Не бойся делать то, что не умеешь. Помни Ковчег построил любитель, а Титаник профессионалы.
PM MAIL   Вверх
Sardar
Дата 30.12.2004, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Под праздники думать особо не хочется, вот наваял нечто страшное:
Код
/**
* Функция разбивает текст по строкам. Аргументом передается тег и запрашиваемая ширина.
* Тег не должен содержать разметку и переводы строки.
* Возвращает реальную ширину элемента, обычно она чуть шире чем запрашиваемая.
*/
function simpleSpliter(elem, width) {
 if(!elem||width<1) throw "Illegal argument exception";
 var txt=(typeof(elem.innerText)!="undefined")? elem.innerText: elem.textContent;
 elem.innerText=""; //убираем всё содержимое
 var maxWdth=0;
 for(var pt=0, el, i; pt<txt.length; pt=i) {
   el=document.createElement("SPAN"); //следующая строка
   elem.appendChild(el); //рендерим
   for(i=pt; i<txt.length&&el.offsetWidth<width; i++) el.innerHTML=txt.substring(pt, i+1);
   if(i<txt.length) {
        if(i-pt>1&&txt.charCodeAt(i-1)>32) el.innerHTML=txt.substring(pt, --i)+"-";
        el.innerHTML+="<br>";
   }
   if(el.offsetWidth>maxWdth) maxWdth=el.offsetWidth;
 }
 return maxWdth;
}


Пример работы:
HTML
<div id="test">Это длинный текст который не может содержать символы перевода строки, а также теги, ибо код разбивающий его очень примитывный.</div>
<script language="Javascript" type="text/javascript">
<!--
//разбить по ширине в 40 пикселов
alert("Max width: "+simpleSpliter(document.getElementById("test"), 40));
//-->
</script>


Передать можешь сразу ячейки таблицы.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Opik
Дата 3.1.2005, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 1
Всего: 55



А не проще:
Код

<p align="justify">текст</p>

? и надобность в переносах отмадет...

Цитата
Sardar
Символ переноса тогда не появиться

смотря какой разделитель поставить...
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.