# HTML <pre> 标签
## 浏览器支持
| IE | Firefox | Chrome | Safari | Opera |
| --- | --- | --- | --- | --- |
所有浏览器都支持 <pre> 标签。
## 定义和用法
pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。
<pre> 标签的一个常见应用就是用来表示计算机的源代码。
可以导致段落断开的标签(例如标题、[<p>](tag_p.asp "HTML <p> 标签") 和 [<address> 标签](tag_address.asp "HTML <address> 标签"))_绝不能_包含在 <pre> 所定义的块里。尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的。
pre 元素中允许的文本可以包括[物理样式和基于内容的样式变化](/html/html_style.asp "HTML 教程延伸阅读:改变文本的外观和含义"),还有[链接](/tags/tag_a.asp "HTML <a> 标签")、[图像](/tags/tag_img.asp "HTML <img> 标签")和[水平分隔线](/tags/tag_hr.asp "HTML <hr> 标签")。当把其他标签(比如 <a> 标签)放到 <pre> 块中时,就像放在 HTML/XHTML 文档的其他部分中一样即可。请看下面的例子:
```
<pre>
<html>
<head>
<script type="text/javascript" src="loadxmldoc.js">
</script>
</head>
<body>
<script type="text/javascript">
xmlDoc=<a href="dom_loadxmldoc.asp">loadXMLDoc</a>("books.xml");
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>
</pre>
```
在上面的代码中,<pre> 标签中的特殊符号被转换为[符号实体](/html/html_entities.asp "HTML 字符实体"),比如 "<" 代表 "<",">" 代表 ">"。另外,请注意蓝色的代码,我们在 <pre> 标签中使用了链接,也就是 <a> 标签。上面这段代码的显示效果如下:
```
<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)在 <pre> 标签定义的块当中可以起到应有的作用,每个制表符占据 8 个字符的位置。但是我们不推荐使用它,因为在不同的浏览器中,Tab 的实现各不相同。在用 <pre> 标签格式化的文档段中使用空格,可以确保文本正确的水平位置。
提示:如果您希望使用 <pre> 标签来定义计算机源代码,比如 HTML 源代码,请使用[符号实体](/html/html_entities.asp "HTML 字符实体")来表示特殊字符,比如 "<" 代表 "<",">" 代表 ">","&" 代表 "&"。
提示:在 W3School 中,非常多页面中的源代码实例都是通过 <pre> 标签定义的,您可以参考这些页面,学习如何使用该标签。我们甚至把 <pre> 标签与 [<code> 标签](/tags/tag_code.asp "HTML <code> 标签")结合起来使用,以获得更加精确的语义。
## HTML 与 XHTML 之间的差异
在 HTML 4.01 中,pre 元素的 "width" 属性是不被赞成使用的。
在 XHTML 1.0 Strict DTD 中,pre 元素的 "width" 属性是不被支持的。
## 可选的属性
| 属性 | 值 | 描述 |
| --- | --- | --- |
| width | number | 定义每行的最大字符数(通常是 40、80 或 132)。 |
## 全局属性
<pre> 标签支持 [HTML 中的全局属性](/tags/html_ref_standardattributes.asp)。
## 事件属性
<pre> 标签支持 [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>
```
- HTML 标签列表
- HTML <!--...--> 标签
- HTML <!DOCTYPE> 标签
- HTML <a> 标签
- HTML <abbr> 标签
- HTML <acronym> 标签
- HTML <address> 标签
- HTML <applet> 标签
- HTML <area> 标签
- HTML <article> 标签
- HTML <aside> 标签
- HTML <audio> 标签
- HTML <b> 标签
- HTML <base> 标签
- HTML <basefont> 标签
- HTML <bdi> 标签
- HTML <bdo> 标签
- HTML <big> 标签
- HTML <blockquote> 标签
- HTML <body> 标签
- HTML <br> 标签
- HTML <button> 标签
- HTML <canvas> 标签
- HTML <caption> 标签
- HTML <center> 标签
- HTML <cite> 标签
- HTML <em> <strong> <dfn> <code> <samp> <kbd><var> <cite> 标签
- HTML <col> 标签
- HTML <colgroup> 标签
- HTML <command> 标签
- HTML <datalist> 标签
- HTML <dd> 标签
- HTML <del> 标签
- HTML <details> 标签
- HTML <dialog> 标签
- HTML <dir> 标签
- HTML <div> 标签
- HTML <dl> 标签
- HTML <dt> 标签
- HTML <embed> 标签
- HTML <fieldset> 标签
- HTML <figcaption> 标签
- HTML <figure> 标签
- HTML <font> 标签
- HTML <footer> 标签
- HTML <form> 标签
- HTML <frame> 标签
- HTML <frameset> 标签
- HTML <h1> 到 <h6> 标签
- HTML <head> 标签
- HTML <header> 标签
- HTML <hr> 标签
- HTML <html> 标签
- HTML <i> 标签
- HTML <iframe> 标签
- HTML <img> 标签
- HTML <input> 标签
- HTML DOM Button 对象
- HTML DOM Checkbox 对象
- HTML DOM Color 对象
- HTML DOM Input Date 对象
- HTML DOM Datetime 对象
- HTML DOM Datetime Local 对象
- HTML DOM Email 对象
- HTML DOM FileUpload 对象
- HTML DOM Hidden 对象
- HTML DOM Input Image 对象
- HTML DOM Month 对象
- HTML DOM Number 对象
- HTML DOM Password 对象
- HTML DOM Input Range 对象
- HTML DOM Radio 对象
- HTML DOM Reset 对象
- HTML DOM Input Search 对象
- HTML DOM Submit 对象
- HTML DOM Text 对象
- HTML DOM Input Time 对象
- HTML DOM Input URL 对象
- HTML DOM Input Week 对象
- HTML <ins> 标签
- HTML <keygen> 标签
- HTML <label> 标签
- HTML <legend> 标签
- HTML <li> 标签
- HTML <link> 标签
- HTML <main> 标签
- HTML <map> 标签
- HTML <mark> 标签
- HTML <menu> 标签
- HTML <menuitem> 标签
- HTML <meta> 标签
- HTML <meter> 标签
- HTML <nav> 标签
- HTML <noframes> 标签
- HTML <noscript> 标签
- HTML <object> 标签
- HTML <ol> 标签
- HTML <optgroup> 标签
- HTML <option> 标签
- HTML <output> 标签
- HTML <p> 标签
- HTML <param> 标签
- HTML <pre> 标签
- HTML <progress> 标签
- HTML <q> 标签
- HTML <rp> 标签
- HTML <rt> 标签
- HTML <ruby> 标签
- HTML <s> 标签
- HTML <script> 标签
- HTML <section> 标签
- HTML <select> 标签
- HTML <small> 标签
- HTML <source> 标签
- HTML <span> 标签
- HTML <strike> 标签
- HTML <style> 标签
- HTML <sub> 标签
- HTML <summary> 标签
- HTML <sup> 标签
- HTML <table> 标签
- HTML <tbody> 标签
- HTML <td> 标签
- HTML <textarea> 标签
- HTML <tfoot> 标签
- HTML <th> 标签
- HTML <thead> 标签
- HTML <time> 标签
- HTML <title> 标签
- HTML <tr> 标签
- HTML <track> 标签
- HTML <tt> 标签
- HTML <u> 标签
- HTML <ul> 标签
- HTML <video> 标签
- HTML <wbr> 标签
- HTML 全局属性
- HTML accesskey 属性
- HTML class 属性
- HTML contenteditable 属性
- HTML contextmenu 属性
- HTML data-* 属性
- HTML dir 属性
- HTML draggable 属性
- HTML dropzone 属性
- HTML hidden 属性
- HTML id 属性
- HTML lang 属性
- HTML spellcheck 属性
- HTML style 属性
- HTML tabindex 属性
- HTML title 属性
- HTML translate 属性
- HTML 事件属性
- HTML 5 视频/音频参考手册
- HTML 5 Canvas 参考手册
- HTML 元素和有效的 DTD
- HTML 颜色名
- HTML 字符集
- HTML ASCII 参考手册
- HTML ISO-8859-1 参考手册
- HTML 4.01 符号实体
- HTML URL 编码
- HTML 语言代码参考手册
- HTTP 状态消息
- HTTP 方法:GET 对比 POST
- 免责声明