Подтвердить что ты не робот

Получение строк в <pre class="prettyprint-override"> tags

Я создаю поля комментариев, которые основаны на пользовательском вводе в textarea. Но когда я использую <pre> теги Я не могу сказать, чтобы это было правильно помещено внутри представления комментариев.

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

Я заметил, что есть свойство, называемое "ширина" для <pre> , но W3 отмечает его как устаревшее, и оно ломается только после того и так много символов, что также не является идеальным. (Он также не работает с IE вообще.)

Любые предложения?

4b9b3361

Ответ 1

Обычным подходом является преобразование одиночных строк новой строки во входном сигнале в "< br/" > ". (В двухстрочных символах обычно вводится новый элемент" <p> ".) Однако это не охватывает многопроцессорные пробелы; если вам нужно их сохранить, вы можете заменить каждую двумерную последовательность пробелом и неразрывным пространством ('', '\ xA0' или '& # 160;' в качестве символьной ссылки).

Существует способ CSS, в котором вы можете сохранить литеральные символы новой строки и пробелы, но все же обернуть, когда длина строки слишком короткая:

white-space: pre-wrap;

Однако это значение свойства CSS 2.1 и CSS 3 не поддерживается кросс-браузером под его первоначальным именем. Webkit (Safari, Chrome) выбирает его; чтобы заставить его работать под другими популярными браузерами, вы должны добавить:

white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;

"Word-wrap для IE, который, как всегда, имеет свой собственный способ делать вещи.

Ответ 2

BEST Cross Browser Way (хром, интернет-браузер, Firefox). Это помогло мне получить разрывы строк и показать точный текст:

CSS

xmp{ white-space:pre-wrap; word-wrap:break-word; }

HTML:

<xmp> your text or code </xmp>

Ответ 3

Вы можете отобразить элементы pre с помощью overflow:auto, как здесь, на SO:

<pre style="overflow:auto">Loremipsumdolorsitamet,consecteturadipisicingelit,seddoeiusmodtemporincididuntutlaboreetdoloremagnaaliqua.Utenimadminimveniam,quisnostrudexercitationullamcolaborisnisiutaliquipexeacommodoconsequat.Duisauteiruredolorinreprehenderitinvoluptatevelitessecillumdoloreeufugiatnullapariatur.Excepteursintoccaecatcupidatatnonproident,suntinculpaquiofficiadeseruntmollitanimidestlaborum.</pre>

Но pre element предназначен только для предварительно отформатированного текста, такого как исходный код или текстовые документы. Таким образом, вам лучше добавить разрывы строк HTML (br element) или даже абзацы (p).