HTML <pre> 标签

浏览器支持

所有浏览器都支持 <pre> 标签。

定义和用法

pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。

<pre> 标签的一个常见应用就是用来表示计算机的源代码。

可以导治落断开的标签(例如标题、<p><address> 标签绝不能包含在 <pre> 所定义的块里。尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的。

pre 元素中允许的文本可以包括物理样式和基于内容的样式变化,还有链接图像水平分隔线。当把其他标签(比如 <a> 标签)放到 <pre> 块中时,就像放在 HTML/XHTML 文档的其他部分中一样即可。请看下面的例子:

  1. <pre>
  2. &lt;html&gt;
  3.  
  4. &lt;head&gt;
  5. &lt;script type=&quot;text/javascript&quot; src=&quot;loadxmldoc.js&quot;&gt;
  6. &lt;/script&gt;
  7. &lt;/head&gt;
  8.  
  9. &lt;body&gt;
  10.  
  11. &lt;script type=&quot;text/javascript&quot;&gt;
  12. xmlDoc=<a href="dom_loadxmldoc.asp">loadXMLDoc</a>(&quot;books.xml&quot;);
  13. document.write(&quot;xmlDoc is loaded, ready for use&quot;);
  14. &lt;/script&gt;
  15.  
  16. &lt;/body&gt;
  17.  
  18. &lt;/html&gt;
  19. </pre>

在上面的代码中,<pre> 标签中的特殊符号被转换为符号实体,比如 "&lt;" 代表 "<","&gt;" 代表 ">"。另外,请注意蓝色的代码,我们在 <pre> 标签中使用了链接,也就是 <a> 标签。上面这段代码的显示效果如下:

  1. <html>
  2.  
  3. <head>
  4. <script type="text/javascript" src="loadxmldoc.js">
  5. </script>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <script type="text/javascript">
  11. xmlDoc=loadXMLDoc("books.xml");
  12. document.write("xmlDoc is loaded, ready for use");
  13. </script>
  14.  
  15. </body>
  16.  
  17. </html>

提示和注释

提示:制表符(tab)在 <pre> 标签定义的块当中可以起到应有的作用,每个制表符占据 8 个字符的位置。但是我们不推荐使用它,因为在不同的浏览器中,Tab 的实现各不相同。在用 <pre> 标签格式化的文档段中使用空格,可以确保文本正确的水平位置。

提示:如果您希望使用 <pre> 标签来定义计算机源代码,比如 HTML 源代码,请使用符号实体来表示特殊字符,比如 "&lt;" 代表 "<","&gt;" 代表 ">","&amp;" 代表 "&"。

提示:多页面中的源代码实例都是通过 <pre> 标签定义的,您可以参考这些页面,学习如何使用该标签。我们甚至把 <pre> 标签与 <code> 标签结合起来使用,以获得更加精确的语义。

HTML 与 XHTML 之间的差异

在 HTML 4.01 中,pre 元素的 "width" 属性是不被赞成使用的。

在 XHTML 1.0 Strict DTD 中,pre 元素的 "width" 属性是不被支持的。

可选的属性

属性 描述
width number 定义每行的最大字符数(通常是 40、80 或 132)。

全局属性

<pre> 标签支持 HTML 中的全局属性

事件属性

<pre> 标签支持 HTML 中的事件属性

实例

预格式文本

此例演示如何使用pre标签对空行和空格进行控制。

  1. <html>
  2. <body>
  3. <pre>
  4. 这是
  5. 预格式文本。
  6. 它保留了 空格
  7. 和换行。
  8. </pre>
  9. <p>pre 标签很适合显示计算机代码:</p>
  10. <pre>
  11. for i = 1 to 10
  12. print i
  13. next i
  14. </pre>
  15. </body>
  16. </html>