Answers:
答案,来自此页面的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-line
折叠所有空格(不只是在行首)。 developer.mozilla.org/zh-CN/docs/Web/CSS/white-space的表格汇总了white-space
值的行为。
word-wrap: break-word
不执行问题的要求,即使在单词之间也导致换行。您可以删除该行。在现代浏览器上,您不需要任何-moz
前缀或其他前缀。
我发现跳过pre标签并使用空格:在div上进行预包装是更好的解决方案。
<div style="white-space: pre-wrap;">content</div>
style="white-space: pre-wrap; font-family:monospace;"
<pre>
用于代码块时可能会有更多的语义价值。
我建议忘记预言,只将其放在文本区域中。
您的缩进将保留,并且您的代码不会在路径或其他内容的中间出现单词包装。
如果要复制到剪贴板,也更容易在文本区域中选择文本范围。
以下是php的摘录,因此,如果您不在php中,则打包html特殊字符的方式会有所不同。
<textarea style="font-family:monospace;" onfocus="copyClipboard(this);"><?=htmlspecialchars($codeBlock);?></textarea>
有关如何在js中将文本复制到剪贴板的信息,请参见:如何在JavaScript中复制到剪贴板?。
然而...
我只是检查了stackoverflow代码块,然后将它们包裹在<code>标记中,并用CSS包装在<pre>标记中。
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/。
这是一个不错的设置,但我现在只使用textareas。
<pre>
它没有任何语义含义(不同于<code>
),它只是意味着应保留换行符和多个空格。
尝试使用
<pre style="white-space:normal;">.
或更好地抛出CSS。
最佳跨浏览器方式对我有用,可以得到换行符并显示确切的代码或文本:(chrome,Internet Explorer,Firefox)
CSS:
xmp{ white-space:pre-wrap; word-wrap:break-word; }
HTML:
<xmp> your text or code </xmp>
以下内容帮助了我:
pre {
white-space: normal;
word-wrap: break-word;
}
谢谢
white-space: pre-wrap;
它,因为它尊重空白空间
本<pre>
-元素代表“预格式化文本”,旨在保持其标签之间的文本(或其他)的格式。因此,它实际上没有inteded有内自动自动换行或换行符<pre>
-Tag
元素中的文本以固定宽度的字体(通常为Courier)显示,并且保留空格和换行符。
资料来源:w3schools.com,由我自己强调。
white-space:pre-line;
(和所有与浏览器兼容的版本)在某些情况下(例如,没有制表符)似乎更合适,因为它占用了行首的空间(如果有的话)