13 ответов:
ответ от на этой странице в CSS:
pre { white-space: pre-wrap; /* Since CSS 2.1 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ }
это отлично работает, чтобы обернуть текст и сохранить пробел в
pre- tag:pre{ white-space: pre-wrap; }
Я обнаружил, что пропуск предварительного тега и использование пробела: предварительная обертка на div-лучшее решение.
<div style="white-space: pre-wrap;">content</div>
Я предлагаю забыть pre и просто положить его в текстовую область.
ваш отступ останется и ваш код не будет сворачиваться в середине пути или что-то.
легче выбрать диапазон текста в текстовой области тоже, если вы хотите скопировать в буфер обмена.
ниже приведен фрагмент php, поэтому, если вы не в php, то способ упаковки специальных символов html будет отличаться.
<textarea style="font-family:monospace;" onfocus="copyClipboard(this);"><?=htmlspecialchars($codeBlock);?></textarea>для получения информации о том, как Скопировать текст в буфер обмена в JS см.: Как скопировать в буфер обмена в JavaScript? .
однако...
Я только что проверил блоки кода stackoverflow, и они обернуты в тег
, завернутый в тегс помощью css ...code { background-color: #EEEEEE; font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif; } pre { background-color: #EEEEEE; font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; width: auto; }также содержимое блоков кода stackoverflow выделено синтаксисом с помощью (я думаю) http://code.google.com/p/google-code-prettify/ .
его хорошая настройка, но я просто иду с текстовыми областями на данный момент.
Это то, что мне нужно. Он удерживал слова от разрыва, но допускал динамическую ширину в области pre.
word-break: keep-all;
Я объединил ответы @richelectron и @user1433454.
Он работает очень хорошо и сохраняет форматирование текста.<pre style="white-space: pre-wrap; word-break: keep-all;"> </pre>
Вы можете:
pre { white-space: normal; }чтобы сохранить моноширинный шрифт, но добавить word-wrap, или:
pre { overflow: auto; }что позволит фиксированный размер с горизонтальной прокруткой для длинных линий.
попробуй такое
pre { white-space: pre-wrap; /* CSS 3 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ padding:0px; margin:0px }
лучший Кросс-браузер способ работал для меня, чтобы получить разрывы строк и показывает точный код или текст: (chrome, internet explorer, Firefox)
CSS:
xmp{ white-space:pre-wrap; word-wrap:break-word; }HTML:
<xmp> your text or code </xmp>
наиболее кратко, это заставляет контент обернуть внутри тега "pre", не нарушая слова. Ура!
pre { white-space: pre-wrap; word-break: keep-all }посмотреть живой пример здесь.
The
<pre>-элемент обозначает "предварительно отформатированный текст" и предназначен для сохранения форматирования текста (или чего-либо еще) между его тегами. Поэтому на самом деле не предполагается иметь автоматическую обертку слов или разрывы строк внутри<pre>-Tagтекст в элементе отображается шрифтом фиксированной ширины (обычно курьер), и это сохраняет как пробелы и переносы строк.
источник: w3schools.com, подчеркивает сделанное мною.
Comments