CSS white-space属性怎么处理文本换行和空格

来源:前端技术作者:弥生美月头衔:网络博主
导读:本期聚焦于小伙伴创作的《CSS white-space属性怎么处理文本换行和空格》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《CSS white-space属性怎么处理文本换行和空格》有用,将其分享出去将是对创作者最好的鼓励。

CSS的white-space属性用于设置如何处理元素内的空白字符和换行,包括空格、制表符、换行符等,不同的属性值对应不同的处理规则,能满足多种文本排版需求。

CSS white-space属性怎么处理文本换行和空格

white-space的常用属性值

white-space有多个可选值,每个值对空白和换行的处理规则不同,具体如下表所示:

属性值空格处理换行处理是否自动换行
normal合并连续空格为单个忽略源码中的换行
nowrap合并连续空格为单个忽略源码中的换行
pre保留所有空格保留源码中的换行
pre-wrap保留所有空格保留源码中的换行
pre-line合并连续空格为单个保留源码中的换行

各属性值效果演示

normal(默认值)

normal是white-space的默认值,浏览器会合并连续的空格和换行,文本超出容器宽度时自动换行。以下是测试代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <style>
        .normal-box {
            width: 200px;
            border: 1px solid #ccc;
            white-space: normal;
        }
    </style>
</head>
<body>
    <div class="normal-box">
        这是一段    测试文本
        包含多个空格和换行
        用来测试normal属性的效果
    </div>
</body>
</html>

上述代码中,连续的多个空格会被合并为一个,源码中的换行也会被忽略,文本会在200px宽度内自动换行。

nowrap

nowrap会合并连续空格,忽略源码换行,且文本不会自动换行,超出容器部分会溢出。测试代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <style>
        .nowrap-box {
            width: 200px;
            border: 1px solid #ccc;
            white-space: nowrap;
            overflow: hidden; /* 隐藏溢出内容 */
            text-overflow: ellipsis; /* 溢出显示省略号 */
        }
    </style>
</head>
<body>
    <div class="nowrap-box">
        这是一段    测试文本
        包含多个空格和换行
        用来测试nowrap属性的效果
    </div>
</body>
</html>

此时文本不会换行,多余内容会被隐藏并显示省略号,常见用于单行文本省略的场景。

pre

pre会保留所有空格和源码中的换行,文本不会自动换行,类似<pre>标签的默认效果。测试代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <style>
        .pre-box {
            width: 200px;
            border: 1px solid #ccc;
            white-space: pre;
        }
    </style>
</head>
<body>
    <div class="pre-box">
        这是一段    测试文本
        包含多个空格和换行
        用来测试pre属性的效果
    </div>
</body>
</html>

可以看到连续的空格被完整保留,源码中的换行也会生效,文本超出容器宽度时不会自动换行,会出现横向滚动条。

pre-wrap

pre-wrap保留所有空格和源码换行,同时文本超出容器宽度时会自动换行,兼顾了格式保留和自适应排版的需求。测试代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <style>
        .pre-wrap-box {
            width: 200px;
            border: 1px solid #ccc;
            white-space: pre-wrap;
        }
    </style>
</head>
<body>
    <div class="pre-wrap-box">
        这是一段    测试文本
        包含多个空格和换行
        用来测试pre-wrap属性的效果
    </div>
</body>
</html>

该场景下空格和换行都被保留,同时长文本会自动换行,适合展示代码片段、格式化文本等场景。

pre-line

pre-line会合并连续空格,但保留源码中的换行,文本超出容器宽度时自动换行。测试代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <style>
        .pre-line-box {
            width: 200px;
            border: 1px solid #ccc;
            white-space: pre-line;
        }
    </style>
</head>
<body>
    <div class="pre-line-box">
        这是一段    测试文本
        包含多个空格和换行
        用来测试pre-line属性的效果
    </div>
</body>
</html>

此时连续的空格被合并为一个,但源码中的换行会生效,文本也会自动换行,适合需要保留原文换行但不需要保留多余空格的场景。

常见应用场景

  • 单行文本省略:使用white-space: nowrap配合overflow: hiddentext-overflow: ellipsis实现。
  • 展示格式化文本:比如代码块、诗歌内容,使用white-space: pre-wrap保留原有格式同时自适应容器宽度。
  • 保留用户输入的原始换行:比如评论区、留言板内容,使用white-space: pre-line保留用户输入的换行,同时合并多余空格。

CSSwhite-space文本换行空格处理修改时间:2026-07-05 19:24:12

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。