# HTML &lt;pre&gt; 标签 ## 浏览器支持 | IE | Firefox | Chrome | Safari | Opera | | --- | --- | --- | --- | --- | 所有浏览器都支持 &lt;pre&gt; 标签。 ## 定义和用法 pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 &lt;pre&gt; 标签的一个常见应用就是用来表示计算机的源代码。 可以导致段落断开的标签(例如标题、[&lt;p&gt;](tag_p.asp "HTML &lt;p&gt; 标签") 和 [&lt;address&gt; 标签](tag_address.asp "HTML &lt;address&gt; 标签"))_绝不能_包含在 &lt;pre&gt; 所定义的块里。尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的。 pre 元素中允许的文本可以包括[物理样式和基于内容的样式变化](/html/html_style.asp "HTML 教程延伸阅读:改变文本的外观和含义"),还有[链接](/tags/tag_a.asp "HTML &lt;a&gt; 标签")、[图像](/tags/tag_img.asp "HTML &lt;img&gt; 标签")和[水平分隔线](/tags/tag_hr.asp "HTML &lt;hr&gt; 标签")。当把其他标签(比如 &lt;a&gt; 标签)放到 &lt;pre&gt; 块中时,就像放在 HTML/XHTML 文档的其他部分中一样即可。请看下面的例子: ``` <pre> &lt;html&gt; &lt;head&gt; &lt;script type=&quot;text/javascript&quot; src=&quot;loadxmldoc.js&quot;&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;script type=&quot;text/javascript&quot;&gt; xmlDoc=<a href="dom_loadxmldoc.asp">loadXMLDoc</a>(&quot;books.xml&quot;); document.write(&quot;xmlDoc is loaded, ready for use&quot;); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; </pre> ``` 在上面的代码中,&lt;pre&gt; 标签中的特殊符号被转换为[符号实体](/html/html_entities.asp "HTML 字符实体"),比如 "&lt;" 代表 "&lt;","&gt;" 代表 "&gt;"。另外,请注意蓝色的代码,我们在 &lt;pre&gt; 标签中使用了链接,也就是 &lt;a&gt; 标签。上面这段代码的显示效果如下: ``` <html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> </head> <body> <script type="text/javascript"> xmlDoc=[loadXMLDoc](/xmldom/dom_loadxmldoc.asp)("books.xml"); document.write("xmlDoc is loaded, ready for use"); </script> </body> </html> ``` ## 提示和注释 提示:制表符(tab)在 &lt;pre&gt; 标签定义的块当中可以起到应有的作用,每个制表符占据 8 个字符的位置。但是我们不推荐使用它,因为在不同的浏览器中,Tab 的实现各不相同。在用 &lt;pre&gt; 标签格式化的文档段中使用空格,可以确保文本正确的水平位置。 提示:如果您希望使用 &lt;pre&gt; 标签来定义计算机源代码,比如 HTML 源代码,请使用[符号实体](/html/html_entities.asp "HTML 字符实体")来表示特殊字符,比如 "&lt;" 代表 "&lt;","&gt;" 代表 "&gt;","&amp;" 代表 "&"。 提示:在 W3School 中,非常多页面中的源代码实例都是通过 &lt;pre&gt; 标签定义的,您可以参考这些页面,学习如何使用该标签。我们甚至把 &lt;pre&gt; 标签与 [&lt;code&gt; 标签](/tags/tag_code.asp "HTML &lt;code&gt; 标签")结合起来使用,以获得更加精确的语义。 ## HTML 与 XHTML 之间的差异 在 HTML 4.01 中,pre 元素的 "width" 属性是不被赞成使用的。 在 XHTML 1.0 Strict DTD 中,pre 元素的 "width" 属性是不被支持的。 ## 可选的属性 | 属性 | 值 | 描述 | | --- | --- | --- | | width | number | 定义每行的最大字符数(通常是 40、80 或 132)。 | ## 全局属性 &lt;pre&gt; 标签支持 [HTML 中的全局属性](/tags/html_ref_standardattributes.asp)。 ## 事件属性 &lt;pre&gt; 标签支持 [HTML 中的事件属性](/tags/html_ref_eventattributes.asp)。 ## TIY 实例 [预格式文本](/tiy/t.asp?f=html_preformattedtext "预格式文本") 此例演示如何使用pre标签对空行和空格进行控制。 ``` <html> <body> <pre> 这是 预格式文本。 它保留了 空格 和换行。 </pre> <p>pre 标签很适合显示计算机代码:</p> <pre> for i = 1 to 10 print i next i </pre> </body> </html> ```