当前位置: 首页 > news >正文

CSS 中 white-space 用于控制元素内空白符(空格、制表符、换行符)的处理方式以及文本的换行行为

CSS white-space 属性详解

white-space 是 CSS 中一个非常有用的属性,用于控制元素内空白符(空格、制表符、换行符)的处理方式以及文本的换行行为。

核心功能演示

下面我将通过一个可视化示例展示 white-space 不同值的具体效果:

html

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS white-space 属性详解</title><style>* {box-sizing: border-box;margin: 0;padding: 0;font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;}body {background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);color: #333;line-height: 1.6;padding: 30px;min-height: 100vh;}.container {max-width: 1200px;margin: 0 auto;background: white;border-radius: 15px;box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);overflow: hidden;}header {background: #4a6fa5;color: white;padding: 30px;text-align: center;}h1 {font-size: 2.5rem;margin-bottom: 15px;}.intro {font-size: 1.2rem;max-width: 800px;margin: 0 auto 25px;line-height: 1.6;}.properties {display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 25px;padding: 30px;}.property {background: #f8f9fa;border-radius: 10px;padding: 25px;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);transition: transform 0.3s ease;}.property:hover {transform: translateY(-5px);}.property h2 {color: #4a6fa5;margin-bottom: 15px;font-size: 1.5rem;border-bottom: 2px solid #4a6fa5;padding-bottom: 10px;}.property p {margin-bottom: 15px;color: #555;}.example {background: #2c3e50;color: #ecf0f1;padding: 20px;border-radius: 8px;font-family: 'Courier New', Courier, monospace;white-space: pre;overflow-x: auto;margin: 15px 0;}.demo {background: white;border: 2px dashed #4a6fa5;padding: 15px;border-radius: 8px;margin-top: 15px;min-height: 100px;}.demo.normal { white-space: normal; }.demo.nowrap { white-space: nowrap; }.demo.pre { white-space: pre; }.demo.pre-wrap { white-space: pre-wrap; }.demo.pre-line { white-space: pre-line; }.demo.break-spaces { white-space: break-spaces; }.visual-guide {background: #eef2f7;padding: 30px;margin-top: 30px;border-top: 1px solid #dde4ec;}.guide-container {display: flex;justify-content: space-between;flex-wrap: wrap;gap: 20px;margin-top: 20px;}.guide-item {flex: 1;min-width: 250px;background: white;padding: 20px;border-radius: 10px;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);}.guide-item h3 {color: #4a6fa5;margin-bottom: 15px;}footer {text-align: center;padding: 25px;background: #2c3e50;color: #ecf0f1;margin-top: 30px;}@media (max-width: 768px) {.properties {grid-template-columns: 1fr;}.guide-container {flex-direction: column;}}</style>
</head>
<body><div class="container"><header><h1>CSS white-space 属性详解</h1><p class="intro">white-space 属性用于控制元素内空白符(空格、制表符、换行符)的处理方式以及文本的换行行为。下面展示了不同属性值的效果和用法。</p></header><div class="properties"><div class="property"><h2>normal (默认)</h2><p>合并连续的空白符,忽略换行符,文本自动换行。</p><div class="example">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div><div class="demo normal">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div></div><div class="property"><h2>nowrap</h2><p>合并连续的空白符,但防止文本换行,除非使用&lt;br&gt;标签。</p><div class="example">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div><div class="demo nowrap">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div></div><div class="property"><h2>pre</h2><p>保留所有空白符和换行,类似&lt;pre&gt;标签,文本只在有换行符的地方换行。</p><div class="example">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div><div class="demo pre">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div></div><div class="property"><h2>pre-wrap</h2><p>保留所有空白符和换行,但文本也会自动换行。</p><div class="example">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div><div class="demo pre-wrap">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div></div><div class="property"><h2>pre-line</h2><p>合并连续的空白符,但保留换行符,文本也会自动换行。</p><div class="example">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div><div class="demo pre-line">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div></div><div class="property"><h2>break-spaces</h2><p>与pre-wrap类似,但任何保留的空白符序列都会占用空间,包括在行尾。</p><div class="example">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div><div class="demo break-spaces">这是一段  有很多  空格   和
换行的文本,观察空白符如何处理。</div></div></div><div class="visual-guide"><h2 style="text-align: center; color: #2c3e50;">white-space 属性值比较</h2><div class="guide-container"><div class="guide-item"><h3>空白符处理</h3><p><strong>合并连续空白:</strong> normal, nowrap, pre-line</p><p><strong>保留所有空白:</strong> pre, pre-wrap, break-spaces</p></div><div class="guide-item"><h3>换行处理</h3><p><strong>文本自动换行:</strong> normal, pre-wrap, pre-line, break-spaces</p><p><strong>文本不自动换行:</strong> nowrap, pre</p></div><div class="guide-item"><h3>换行符处理</h3><p><strong>保留换行符:</strong> pre, pre-wrap, pre-line, break-spaces</p><p><strong>忽略换行符:</strong> normal, nowrap</p></div></div></div><footer><p>CSS white-space 属性详解 &copy; 2023</p></footer></div>
</body>
</html>

white-space 属性值总结

空白符处理换行符处理自动换行
normal合并忽略
nowrap合并忽略
pre保留保留
pre-wrap保留保留
pre-line合并保留
break-spaces保留保留

实际应用场景

  • normal: 普通文本段落(默认行为)

  • nowrap: 防止文本换行,常用于导航菜单项或单行文本

  • pre: 显示代码或其他需要保留空格的文本内容

  • pre-wrap: 保留格式但同时允许自动换行

  • pre-line: 保留换行但合并空格,适合用户生成的内容

  • break-spaces: 与pre-wrap类似,但行尾空格也会保留


文章转载自:

http://VRSjNBKv.dyxLm.cn
http://O5boUIMv.dyxLm.cn
http://vvyd25S1.dyxLm.cn
http://TxMcC85M.dyxLm.cn
http://JTA7NCtT.dyxLm.cn
http://ez4bo8cw.dyxLm.cn
http://0DkLPuBR.dyxLm.cn
http://PegFBEtL.dyxLm.cn
http://neGo0GKu.dyxLm.cn
http://GvGhv0kw.dyxLm.cn
http://lezX10wI.dyxLm.cn
http://TPe3Sujx.dyxLm.cn
http://9rJnKgAQ.dyxLm.cn
http://WcsW5uX1.dyxLm.cn
http://o3Y8yZrw.dyxLm.cn
http://O8ETavcP.dyxLm.cn
http://kBUoxGh7.dyxLm.cn
http://wwThQDv3.dyxLm.cn
http://fQuePl3H.dyxLm.cn
http://6YWPJLWh.dyxLm.cn
http://KULjS0EL.dyxLm.cn
http://tXjSMenT.dyxLm.cn
http://zWUTlz9G.dyxLm.cn
http://Lh4Ea89q.dyxLm.cn
http://fqUH55E4.dyxLm.cn
http://JNm0Tl90.dyxLm.cn
http://YrcY15FQ.dyxLm.cn
http://n75Zn6V4.dyxLm.cn
http://94laNz0O.dyxLm.cn
http://GmGM9Eab.dyxLm.cn
http://www.dtcms.com/a/379700.html

相关文章:

  • 少儿舞蹈小程序(14)在线预约
  • 【uniapp微信小程序】扫普通链接二维码打开小程序
  • 基于uni-app的蛋糕订购小程序的设计与实现(代码+数据库+LW)
  • 微服务保护和分布式事务
  • 线性代数 · 行列式 | Sarrus Rules / Laplace Expansion
  • uni小程序中使用Echarts图表
  • 小程序setNavigationBarColor设置背景渐变,图片渐变
  • OpenAI与微软“再造合作”:重组背后的资本与生态博弈
  • IP验证概述
  • 【RabbitMQ】高级特性:持久性·发送方确认·重试机制·TTL·死信队列·延迟队列·事务·消息分发
  • Cherry Studio递归工具调用机制深度解析
  • python+springboot大学生心理测评与分析系统 心理问卷测试 自动评分分析 可视化反馈系统
  • 多模态大模型1:Crab
  • MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
  • Python 数据分析:从新手到高手的“摸鱼”指南
  • 手写Spring底层机制的实现【初始化IOC容器+依赖注入+BeanPostProcesson机制+AOP】
  • 【MySQL】表的操作和数据类型
  • QT M/V架构开发实战:QFileSystemModel介绍
  • 基于POI-TL实现动态Word模板的数据填充:【散点图】特殊处理方案
  • Chrome插件开发入门技术文章大纲
  • 新手向:如何高效使用AI技术
  • iOS App 混淆与资源保护:iOS配置文件加密、ipa文件安全、代码与多媒体资源防护全流程指南
  • Docker网络实战:容器通信与隔离之道
  • AI 赋能云端运维:基于 MCP 协议深度集成 Codebuddy CLI 与腾讯云 Lighthouse 的实战全解
  • 《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》
  • Flink1.17.0集群的搭建
  • #C语言——刷题攻略:牛客编程入门训练(十二):攻克 循环控制(四)、循环输出图形(一),轻松拿捏!
  • 面试经典150题[029]:三数之和(LeetCode 15)
  • Ubuntu 24.04 搭建k8s 1.33.4
  • 从数字后端角度谈谈occ电路(一)