pre标签对于HTML中的代码块和在编写脚本时调试输出非常有用,但是我如何使文本换行而不是打印出一行呢?
当前回答
答案,从这个页面的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 {
white-space: normal;
word-wrap: break-word;
}
谢谢
我把@richelectron和@user1433454的答案结合起来。 它工作得很好,并保留了文本格式。
<pre style="white-space: pre-wrap; word-break: keep-all;">
</pre>
我建议忘记预,只是把它放在一个文本区域。
你的缩进将保持不变,你的代码不会在路径或其他东西的中间被换行。
如果你想复制到剪贴板,也更容易在文本区域中选择文本范围。
下面是一个php摘录,所以如果你不是在php,那么你包装html特殊字符的方式会有所不同。
<textarea style="font-family:monospace;" onfocus="copyClipboard(this);"><?=htmlspecialchars($codeBlock);?></textarea>
有关如何在js中复制文本到剪贴板的信息,请参阅:如何在JavaScript中复制到剪贴板?.
然而……
我刚刚检查了stackoverflow代码块,他们包装在一个<code>标签包装在<pre>标签与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>做它的工作,但对于代码有<code>标签。
最好的跨浏览器方式为我工作获得换行和显示准确的代码或文本:(chrome, internet explorer, Firefox)
CSS:
xmp{ white-space:pre-wrap; word-wrap:break-word; }
HTML:
<xmp> your text or code </xmp>
推荐文章
- 使伸缩项目正确浮动
- 如何取消最大高度?
- 形式内联内的形式水平在twitter bootstrap?
- 自定义元素在HTML5中有效吗?
- 如何选择在最后一个子元素之前的元素?
- 如何触发自动填充在谷歌Chrome?
- CSS变换,锯齿边缘在铬
- 创建圈div比使用图像更容易的方法?
- 强迫孩子服从父母的弯曲边界在CSS
- 为什么Chrome浏览器不正确地确定页面是在不同的语言,并提供翻译?
- 在CSS中@apply是什么?
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?