Разделить HTML текст примерно пополам

alexhemp

Новичок
Разделить HTML текст примерно пополам

Итак:

Имеется CMS где пользователь пишет текст
Требуется вывести данный текст в 2 колонки

Средствами HTML автоматически разделить текст на 2 колонки невозможно.
Требуется сделать это автоматически.

Вопрос: как определить точку разделения HTML текста на 2 или больше строки, причем чтобы эта точка была не внутри блочного элемента (в основном там <P>)

натолкните на самый короткий путь... DOM не предлагать :)
 

Фанат

oncle terrible
Команда форума
поделить размер пополам и от этого места поискать <p ?
 

alexhemp

Новичок
Фанат
Это понятно... но во первых нужно наверное поискать в 2 стороны, а во вторых блочных элементов может быть много. Значит нужен частичный разбор HTML.

Я же не прошу решение, вдруг кто-то делал красиво?
 

Фанат

oncle terrible
Команда форума
Я тебе сказал как сделать.
Если ты решил, что тебя это не утсраивает - это уже твои проблемы.
 

alexhemp

Новичок
Фанат
Можешь мне больше не отвечать. Очевидное решение я и так вижу - не идиот.
Хотел узнать - нет ли неочевидного?
 
alexhemp
ИМХО задача изначально неправильно поставлена. У Вас уже есть оформленный текст, Вы хотите его переоформить, при том автоматически, и сохранив предыдущее оформление.
А если там, вдруг таблица попадется?
 

alexhemp

Новичок
Фанат
Ну и замечательно. Будем ждать кого-то кто успешно решил подобную задачу, чтобы он поделился опытом.

-~{}~ 12.05.05 18:33:

Дмитрий Попов

Вот поэтому и хочу обойти блочные элементы. Т.е. спуститься на первый уровень DOM и разрезать между блоками.
Но как-то разбирать документ в дерево не очень хочется ;-)

Задача поставлена как она есть, имеется готовая CMS, готовые тексты, но дизайн сайта меняем, и теперь будет многоколоночная верстка (что поделать, заказчик так хочет).

Добавили в CMS возможность вставить разделитель колонок в текст, но текстов много, так что нужно автоматом разделить...

-~{}~ 12.05.05 19:19:

Вот кое-что накопал... :)

http://www.livejournal.com/talkread.bml?journal=ru_webdev&itemid=15288

Попробую так:

1. Найду позиции блочных элементов первого уровня простым линейным просмотром.
2. Внутри блочных элементов посчитаем количество слов (img примем за 20 :))
3. Разделим общее количество слов на число колонок и найдем блочные элементы ближе всего находящиеся к границам колонок.
4. Разделим текст на части перед этими элементами.

Получится, надеюсь, что-то близкое к тому, что человек сделает вручную.
 
Сверху