当前位置:首页 > 文章列表 > 文章 > 前端 > HTML标记预格式化文本使用

标签,该标签用于保留文本中的空格和换行符,常用于显示代码或诗歌等需要保留格式的内容。以下是关于
标签的详细说明:1. 
 标签简介
 是 preformatted text 的缩写,表示“预格式化文本”。在 HTML 中,浏览器默认会以等宽字体(如 Courier)显示 
 标签内的内容,并且会保留其中的 空格、换行和缩进。示例

HTML标记预格式化文本使用
标签,该标签用于保留文本中的空格和换行符,常用于显示代码或诗歌等需要保留格式的内容。以下是关于
标签的详细说明:1. 
 标签简介
 是 preformatted text 的缩写,表示“预格式化文本”。在 HTML 中,浏览器默认会以等宽字体(如 Courier)显示 
 标签内的内容,并且会保留其中的 空格、换行和缩进。示例

2026-04-04 08:33:24 0浏览 收藏
HTML中的`
`标签是专门用于原样保留文本空格、换行和缩进的“预格式化”利器,尤其适合展示代码、诗歌、日志等对排版敏感的内容;但它仅负责空白符行为,不提供语义——因此常需与``嵌套使用,既确保格式不失真,又让搜索引擎和屏幕阅读器准确识别内容类型;同时必须警惕XSS风险,对用户输入严格进行HTML编码,并注意响应式布局下的溢出处理与跨浏览器兼容性问题,真正考验开发者的是:何时该用它,以及何时更该避免它。

HTML怎样标记文档的预格式化文本_HTML标记文档预格式化文本标签【标签】

 包裹需要保留空格和换行的文本

HTML 默认会把连续空格、制表符、换行都压缩成一个空格,想原样显示代码片段、日志、ASCII 图这类内容,必须用

。它不负责样式,只告诉浏览器:“别动我的空白符”。

常见错误是只靠 标签——它语义上表示代码,但不会保留缩进或换行;或者误用

+ white-space: pre CSS,这在语义和可访问性上都不如原生

  •  本身不带等宽字体,通常需配合  使用,比如 
    ...
  • 直接在
     里写中文或长行内容时,可能溢出容器,需额外加 overflow-x: autoword-break: break-word
  • 服务端渲染时注意:如果内容含用户输入,
     不自动转义 HTML 实体,得先对 <>& 做 HTML 编码,否则有 XSS 风险

 的分工要分清

 是布局行为(保留空白), 是语义标签(表示一段计算机代码)。两者常嵌套使用,但不能互相替代。

比如展示一段 Python 函数,正确写法是:

def hello():\n    print("hi")
;只用 会导致缩进消失;只用
 则屏幕阅读器无法识别这是代码内容。

  • SEO 和可访问性依赖语义:搜索引擎和读屏软件靠 理解内容类型
  • 语法高亮工具(如 Prism.js、highlight.js)通常监听的是 标签,不是
  • 若只是想让普通段落保留换行(比如地址、诗歌),用
     过重,更适合用 
    + white-space: pre-line

空格、换行、编码问题最容易漏掉

写在

 里的内容,HTML 解析器仍按标准规则处理:开头结尾的空白会被裁掉,内部的   不会自动展开,而换行符在源码里是 \n 还是 \r\n 一般不影响渲染,但服务端模板拼接时容易混入不可见控制字符。

  • 模板中动态插入内容时,确认是否已 trim 掉首尾空白,否则
     会多出一行空行
  • 从数据库或 API 拿到的字符串若含 \r\n,现代浏览器基本兼容,但老版本 IE 可能渲染异常,统一转成 \n 更稳妥
  • 避免在
     内直接写未编码的