热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

whitespace、wordwrap和wordbreak的简单整理

white-space、word-wrap和word-break是决定段落中的文本如何展示的3个css属性,属性说明请点击链接查看参考手册。white-spacewhite-spa

white-space 、 word-wrap 和 word-break 是决定段落中的文本如何展示的3个css属性,属性说明请点击链接查看参考手册。

white-space

white-space属性定义了如何处理文本中的空白;具体到细节,主要决定决定了如何处理元素内文本中空白符换行符是否允许过长行折行;
其中,过长行是指那些单行内容宽度超出了容器宽度的行,以下列代码为例:

ABCDEFGHIJKOMN


/*css*/ p{width:4em;}

内容行ABCDEFGHIJKOMN渲染宽度为7em,超过所在容器的指定宽度,那么它属于过长行。

white-space属性各可能值的对比

white-space默认值为normal,可选值包括pre、nowrap、pre-wrap、pre-line。

可选值各维度对比

下表对比分析了white-space各值在处理空白符、换行符、折行与否时的不同策略。

概述空白符换行符过长行是否折行
normal合并连续的空白符、换行符为一个空白符;折行;连续的多个空白符合并成一个;换行符被当做空白符处理,一同合并;折行(说明1)
pre完全保留代码中格式;不折行;所有空白符保留;所有换行符保留;不折行(说明2)
nowrap合并连续的空白符、换行符为一个空白符;不折行;连续的多个空白符合并成一个;换行符被当做空白符处理,一同合并;不折行(说明2)
pre-wrap保留所有空白符、换行符;折行;所有空白符保留;所有换行符保留;折行(说明1)
pre-line空白符合并;换行符保留;折行;连续的多个空白符合并成一个;所有换行符保留;折行(说明1)

说明1:折行( CJK遇到容器边界自动换行;非CJK由word-wrap和word-break的值决定。)
说明2:不折行(行内容宽度超出容器宽度时的表现由overflow属性决定;word-wrap和word-break设置为任何值都不影响表现。)

其他说明

1.如下方代码(图1)及相应效果图(图2)所示,段落中的换行效果可能来源于两种不同的原因。一种是段落中保留的换行符;另一种情况是过长行的折行效果。
前者在所属容器宽度改变时,仍然是单独一行;后者在所属容器改变时可能合并到其余行中。
《white-space、word-wrap和word-break的简单整理》
《white-space、word-wrap和word-break的简单整理》

word-wrap和word-break

white-space值为normal、pre-wrap、pre-line时,过长行遇到容器边界时会触发折行现象。white-space决定了过长行是否发生折行,而 word-wrap和word-break用于决定如何进行折行。

理解word-wrap和word-break的区别

从易于区分和理解的角度,我引用了“无双”在你真的了解word-wrap和word-break的区别吗?一文中对两个css属性作用的解释:
word-wrap

word-wrap 属性用来标明是否允许浏览器在单词内进行断句,这是为了防止当一个字符串太长而找不到它的自然断句点时产生溢出现象。

word-break

word-break 属性用来标明怎么样进行单词内的断句。

关于word-wrap和word-break,我们主要关注word-wrap:break-word和word-break:break-all的区别:
word-wrap先尝试寻找空格、连接符等正常换行点,如果正常换行能满足不超出容器宽度的需求,正常换行;如果正常换行后仍然超出容器宽度,对非CJK长内容进行强制换行。
word-break:break:all直接强制在行末尾换行。

详细论述和验证建议参考张鑫旭大神的word-break:break-all和word-wrap:break-word的区别 和 无双的你真的了解word-wrap和word-break的区别吗?,两篇文章阐述都清晰明了,此处不班门弄斧;引出基本的概念和理解主要为了引出后续的组合引用效果表格。

word-wrap和word-break的组合引用效果

word-wrap默认值normal,可选值break-word;
word-break默认值normal,可选值为break-all,keep-all。非CJK文本下,keep-all和normal的表现是一致的。
下表列出了word-wrap和word-break的组合使用效果。

组合效果
word-wrap:normal; word-break:normal;遵循默认规则折行; 如没有-和空白符,不折行(说明1);
word-wrap:normal; word-break:break-all;内容遇到容器末尾强制执行换行;
word-wrap:break-word; word-break:normal;优先尝试正常折行; 正常折行后仍然过长的,强制在遇到容器末尾时换行;
word-wrap:break-word; word-break:break-all;内容遇到容器末尾强制执行换行(非末行均占满容器宽度); (不优先尝试-和空白符等折行规则)

说明1:超出容器宽度后的效果优overflow属性决定。

End


推荐阅读
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了W3C标准盒模型和IE传统盒模型的区别,探讨了CSS3中box-sizing属性的使用方法及其在布局中的重要性。通过实例分析,帮助读者更好地理解和应用这一关键概念。 ... [详细]
  • 程序员妻子吐槽:丈夫北漂8年终薪3万,存款情况令人意外
    一位程序员的妻子在网上分享了她丈夫在北京工作八年的经历,月薪仅3万元,存款情况却出乎意料。本文探讨了高学历人才在大城市的职场现状及生活压力。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 本文探讨如何利用人工智能算法自动区分网页是详情页还是列表页,介绍具体的实现思路和技术细节。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
author-avatar
汐玉Shining
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有