css中word-break、word-wrap和white-space的区别 :https://baijiahao.baidu.com/s?id=1578623236521030997&wfr=spider&for=pc

在页面中遇到文本需要折行显示时,总会困惑word-break、word-wrap和white-space到底应该用哪个?三者之间又有什么区别?今天查阅资料总结了一下。

首先是white-space。它主要是用来处理元素内文本的空白符、换行符以及是否允许折行。可选值包括normal(默认)、pre、nowrap、pre-wrap、pre-line。用法如下:

whitie-space用法

其中,上图说明1中的CJK指的是中文、日文、韩文三国文字的缩写(应该包含多种亚洲文字),默认情况下,CJK文本自动换行,非CJK文本由word-wrap和word-break决定。举例如下:

再看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:break-word。效果如下:

添加word-wrap:break-word

使用word-wrap:break-word后单词被截断了。但是,可以看到,文本的第一行留有很多空白,如果不想留有这么多空白怎么办?这时word-break就派上用场了,现在给这段文字加上word-break:break-all。效果如下:

从上面的图可以看出,使用word-wrap时,它会首先尝试将长单词挪到下一行,再看看下一行的宽度够不够,不够的话就进行单词内的断句。而word-break不会尝试把长单词挪到下一行,而是直接进行单词内的断句。

word-break中除了break-all,还有keep-all。keep-all只能在半角空格或连字符处换行。举例如下:

非CJK文本下,keep-all和normal的表现是一致的。举例如下:

总结(个人实际使用时):

white-space主要用来设置CJK文本是否不折行,实际中主要用white-space:nowrap来让文本不折行。

word-wrap主要用来设置非CJK文本是否折行(因为CJK文本会自动折行),如果空间足够,不会对单词内部进行截断

word-break同样主要用来设置非CJK文本是否折行,但是会对单词内部进行截断

欢迎留言交流。

css中word-break、word-wrap和white-space的区别的更多相关文章

  1. LeetCode之“动态规划”:Word Break && Word Break II

     1. Word Break 题目链接 题目要求: Given a string s and a dictionary of words dict, determine if s can be seg ...

  2. 17. Word Break && Word Break II

    Word Break Given a string s and a dictionary of words dict, determine if s can be segmented into a s ...

  3. LeetCode ||& Word Break && Word Break II(转)——动态规划

    一. Given a string s and a dictionary of words dict, determine if s can be segmented into a space-sep ...

  4. 英文单词断行问题:CSS中word-break、word-wrap以及hyphens的兼容性和区别

    CSS中一提到单词断行,最先映入脑海的肯定是word-break和word-wrap这两条属性.但对于这两条属性到底有什么区别,兼容性如何,我一直都概念模糊.今天抽空把它们以及CSS3中新加入的断行属 ...

  5. CSS中px,em,rem,pt的区别及四者换算?

    本文章重要说明px,em,rem,pt的区别以及四者之间的换算. em单位有如下特点 1. em的值并不是固定的; 2. em会继承父级元素的字体大小. 我们在写CSS的时候如果要用em为单位,需要注 ...

  6. js中的break,continue和return的用法及区别

    为什么要说个?好像很简单,但是我也会迷糊,不懂有时候为什么要用return,然而break和continue也经常和他放在一起. 所以就一起来说一说,这三个看起来很简单,却常常会出错的关键词的具体用法 ...

  7. leetcode@ [139/140] Word Break & Word Break II

    https://leetcode.com/problems/word-break/ Given a string s and a dictionary of words dict, determine ...

  8. css中字体单位px,pt,em,百分比之间的区别和用法

    px 即像素,一般国内网站使用较多,默认大小是16px; pt 印刷行业常用单位 em  相对单位,相对父元素属性的单位 ,一般用于移动端布局 rem  结合相对定位和绝对定位的优势,相对根元素htm ...

  9. CSS 中 transform、animation、transition、translate的区别

    在前端页面的开发过程中,经常会碰到这么几个 CSS 属性容易搞混:transform.translate.animation还有transition.下面就针对这几个 CSS 属性做一个对比,辨别这几 ...

  10. CSS中一个冒号和两个冒号有什么区别

    一个冒号是伪类,两个冒号是伪元素 伪类可以独立于文档的元素来分配样式,且可以分配给任何元素,逻辑上和功能上类类似,但是其是预定义的.不存在于文档树中且表达方式也不同,所以叫伪类.伪元素所控制的内容和一 ...

随机推荐

  1. TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  2. HTML页面顶部出现空白的解决办法

    首先我们按F12打开浏览器的开发者工具(不同浏览器打开方式不一样),选择body元素,会发现body有margin:8px的外边距,需要我们重写默认样式. 解决办法: bdoy { margin:0; ...

  3. ios UIWebView加载HTMLStr图文,关于图片宽高设置,webView内容实际高度的踩坑问题

    一.关于UIWebView 与 WKWebView 选取问题 从发布时间看: 2008年7月11日,在新一代iPhone3G正式发售当天,iPhone OS 2.0(iOS 2.0)推出,这时候就有U ...

  4. UNIX网络编程总结四

    socket: 为了执行网络I/O,一个进程做的第一件事就是调用socket函数. family指明协议族,type指明类型,除非在原始套接口,protocol一般为0,并非所有的family,typ ...

  5. LightOJ 1289 LCM from 1 to n(位图标记+素数筛

    https://vjudge.net/contest/324284#problem/B 数学水题,其实就是想写下位图..和状压很像 题意:给n让求lcm(1,2,3,...,n),n<=1e8 ...

  6. 2018-09-25-weekly

    Algorithm 两数相加 What 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. How 两个链表长度相同的部分,对位相加, ...

  7. thinkphp不读取.env文件的键对值

    第一:$_ENV会为空,其原因通常是php的配置文件php.ini的配置项为: :variables_order :Default Value: “EGPCS” :Development Value: ...

  8. [BZOJ] 聚会

    问题描述 Y 岛风景美丽宜人,气候温和,物产丰富.Y 岛上有 N 个城市,有 N-1 条城市间的道路连接着它们.每一条道路都连接某两个城市.幸运的是,小可可通过这些道路可以走遍 Y岛的所有城市. 神奇 ...

  9. NOIp 数学 (小学奥数)

    Basic knowledge \[ C_n^m=\frac{n!}{m!(n - m)!} \] 快速幂 // Pure Quickpow inline int qpow(int n, int m, ...

  10. linux的shell脚本运行python程序

    可以说和windows里的bat是一样的. python3 /opt/pyweibo/get_user_info.py 104501 104502 104503