pre
теги очень полезны для блоков кода в HTML и для отладки вывода при написании сценариев, но как сделать перенос текста вместо вывода одной длинной строки?
722
Ответ, с этой страницы в 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+ */
}
white-space:pre-line;
(и все совместимые с браузером варианты) кажется более адекватным в некоторых случаях (например, без вкладок), поскольку он убирает пробел в начале строки (если таковые имеются)pre-line
сворачивает все пробелы (не только в начале строки). developer.mozilla.org/en-US/docs/Web/CSS/white-space содержит таблицу, обобщающую поведениеwhite-space
значений.word-wrap: break-word
не делает то, о чем спрашивает вопрос, он вызывает перенос строк даже между словами. Вы можете удалить эту строку. В современных браузерах вам не нужны какие--moz
либо префиксы.Это прекрасно работает для переноса текста и сохранения пробелов внутри
pre
-tag:источник
Я обнаружил, что пропуск тега pre и использование пробела: предварительная упаковка в div - лучшее решение.
источник
style="white-space: pre-wrap; font-family:monospace;"
<pre>
для блоков кода.Вкратце, это заставляет содержимое переносить тег «pre» без слов. Ура!
Смотрите живой пример здесь .
источник
Это то, что мне было нужно. Это препятствовало тому, чтобы слова ломались, но учитывало динамическую ширину в предварительной области.
источник
Я предлагаю забыть заранее и просто положить его в текстовое поле.
Ваш отступ останется, и ваш код не будет заключен в слова или что-то в этом роде.
Проще выделить текстовый диапазон в текстовой области, если вы хотите скопировать в буфер обмена.
Ниже приведена выдержка из php, так что если вы не в php, то способ упаковки специальных символов html будет отличаться.
Для получения информации о том, как скопировать текст в буфер обмена в js, смотрите: Как мне скопировать в буфер обмена в JavaScript? ,
Однако...
Я только что проверил блоки кода stackoverflow и они обертывают тег <code>, обернутый в тег <pre> с помощью css ...
Также содержимое блоков кода stackoverflow выделено синтаксисом с использованием (я думаю) http://code.google.com/p/google-code-prettify/ .
Это хорошая установка, но сейчас я просто собираюсь с textareas.
источник
<pre>
имеет какое-либо семантическое значение (в отличие от<code>
), это просто означает, что должны быть сохранены новые строки и несколько пробелов.Я объединил ответы @richelectron и @ user1433454.
Работает очень хорошо и сохраняет форматирование текста.
источник
Вы также можете:
сохранить моноширинный шрифт, но добавить перенос слов или:
что позволит фиксированный размер с горизонтальной прокруткой для длинных строк.
источник
Попробуйте использовать
Или лучше скинуть CSS.
источник
Используйте
white-space: pre-wrap
и некоторые префиксы для автоматического разрыва строки внутриpre
s.Не используйте,
word-wrap: break-word
потому что это просто, конечно, разбивает слово пополам, что, вероятно, то, что вы не хотите.источник
Best Cross Browser Way помог мне найти разрывы строк и показать точный код или текст: (Chrome, Internet Explorer, Firefox)
CSS:
HTML:
источник
Следующее помогло мне:
Спасибо
источник
white-space: pre-wrap;
потому что он уважает пробелы<pre>
-Элементные означает «предварительно отформатированный текстом» и предназначен , чтобы сохранить форматирование текста (или любой другой ) между его тегами. Поэтому на самом деле он не предназначен для автоматического переноса слов или переносов строк внутри<pre>
-TagИсточник: w3schools.com , подчеркивает сделанные мной.
источник