Выравнивание по центру обычного текста (php)

Меня попросили придумать решение, которое позволило бы нашим пользователям создавать свой собственный текст диалогового окна javascript. Однако нам нужно, чтобы он был в центре.

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

Единственный способ, который я могу придумать, - это получить самую длинную строку как int, а затем вычесть из нее последующие строки, разделить результат на два и добавить столько пробелов спереди и сзади.

Есть ли более чистый и элегантный способ решить эту проблему? Существуют ли способы выравнивания текста внутри диалогового окна?

Я думал о чем-то вроде TinyMCE, но я думаю, что это немного излишне, поскольку по сути это 150-символьная строка из 4-5 строк.


person David Yell    schedule 31.08.2010    source источник
comment
Отображается ли этот открытый текст в теге <pre>?   -  person fredley    schedule 31.08.2010
comment
Нет, в диалоговом окне подтверждения javascript.   -  person David Yell    schedule 31.08.2010
comment
Это никогда не будет работать очень хорошо - вы не знаете / не можете контролировать шрифт, используемый в диалоговом окне, поэтому вы не можете определить, какого размера символы. Это всегда будет выглядеть неряшливо.   -  person symcbean    schedule 31.08.2010
comment
(если вы не пропустите весь диалог javascript и не перейдете к модальному DIV, где вы можете использовать CSS)   -  person symcbean    schedule 31.08.2010


Ответы (2)


На стороне PHP вы можете сделать это.

$lines=array();
foreach (explode("\n",wordwrap($str,$len=80)) as $line)
  $lines[]=str_pad($line,$len,' ',STR_PAD_BOTH);
echo implode("\n",$lines);

Версия Javascript должна быть проста в написании.

person bcosca    schedule 31.08.2010

На этой странице есть полезная функция JavaScript для выравнивания строки по центру с помощью обивка. Предполагая, что вы отображаете простой текст с фиксированной шириной (используя тег <pre> или аналогичный), вам нужно будет получить длину самой длинной строки и соответственно заполнить. Если нет, это просто вопрос установки css: #myDiv { text-align:center; } в div, содержащем текст.

person fredley    schedule 31.08.2010