css中word-break、word-wrap和white-space的区别
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的区别的更多相关文章
- 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 ...
- 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 ...
- 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 ...
- 英文单词断行问题:CSS中word-break、word-wrap以及hyphens的兼容性和区别
CSS中一提到单词断行,最先映入脑海的肯定是word-break和word-wrap这两条属性.但对于这两条属性到底有什么区别,兼容性如何,我一直都概念模糊.今天抽空把它们以及CSS3中新加入的断行属 ...
- CSS中px,em,rem,pt的区别及四者换算?
本文章重要说明px,em,rem,pt的区别以及四者之间的换算. em单位有如下特点 1. em的值并不是固定的; 2. em会继承父级元素的字体大小. 我们在写CSS的时候如果要用em为单位,需要注 ...
- js中的break,continue和return的用法及区别
为什么要说个?好像很简单,但是我也会迷糊,不懂有时候为什么要用return,然而break和continue也经常和他放在一起. 所以就一起来说一说,这三个看起来很简单,却常常会出错的关键词的具体用法 ...
- 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 ...
- css中字体单位px,pt,em,百分比之间的区别和用法
px 即像素,一般国内网站使用较多,默认大小是16px; pt 印刷行业常用单位 em 相对单位,相对父元素属性的单位 ,一般用于移动端布局 rem 结合相对定位和绝对定位的优势,相对根元素htm ...
- CSS 中 transform、animation、transition、translate的区别
在前端页面的开发过程中,经常会碰到这么几个 CSS 属性容易搞混:transform.translate.animation还有transition.下面就针对这几个 CSS 属性做一个对比,辨别这几 ...
- CSS中一个冒号和两个冒号有什么区别
一个冒号是伪类,两个冒号是伪元素 伪类可以独立于文档的元素来分配样式,且可以分配给任何元素,逻辑上和功能上类类似,但是其是预定义的.不存在于文档树中且表达方式也不同,所以叫伪类.伪元素所控制的内容和一 ...
随机推荐
- swift实现线程安全的栈和队列
实现一个线程安全的栈 这里使用数组来存储栈的数据.不足之处在于本例中的Stack可以无限扩容,更好的是初始化时候指定一个最大容量,防止不断扩容申请内存导致内存不够的问题.这里的线程安全使用一个串行队列 ...
- [Luogu1220]关路灯(区间dp)
[Luogu1220]关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏 ...
- shell 操作mysql
1.连接 #!/bin/bash user="root" password="XXXXXX" sql = `mysql -u>/dev/null use ...
- bzoj3252 攻略 贪心+dfs序+线段树
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3252 题解 有一个非常显然的贪心思路:每次选择目前走到那儿能够获得的新权值最大的点. 证明的话 ...
- bzoj5084 hashit 广义SAM+树链的并
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5084 题解 考虑平常对于静态问题,我们应该如何用 SAM 求本质不同的子串个数. 对于一个常规 ...
- 百度编辑器UEditor使用总结
官网下载地址:http://ueditor.baidu.com/website/download.html 我下载的是jsp版本,下载后将整个目录复制到项目的js包下,然后将jsp包下的lib下的ja ...
- 英语单词debug
来源——docker官网首页https://www.docker.com/ 翻译 vt. 调试,排除故障,除错,改正有毛病部分 过去式 debugged 过去分词 debugged 现在分词 debu ...
- luoguP4721 【模板】分治 FFT (分治NTT)
给定 $g[1....n-1]$,求 $f[0],f[1],...,f[n-1]$,其中 $f[i]=\sum_{j=1}^{i}f[i-j]g[j]$ 变界为 $f[0]=1$ 答案模 9 ...
- [CF1182F]Maximum Sine
题意:\(f(x) = \text{abs}(\text{sin}(\frac{p}{q} \pi x))\),给定\(a,b,p,q\),求\(x\in[a,b]\)最大的\(f(x)\). 题解: ...
- Codeforces Round #608 (Div. 2) E - Common Number (二分 思维 树结构)