单词太长导致自动换行,出现空白区域。——word-wrap和word-break

简介: 写在前面:在写页面的时候,偶尔有时会遇到下图这两种情况,一种是单词过长时会溢出div,一种是直接换行,导致出现空白区域。这两个情景就需要word-wrap、word-break这两个属性出场来解决了。闲话不扯了,本文主要内容有:word-wrap和word-break属性介绍,使用方法,他们之间的区别,浏览器兼容性,demo链接。需要的朋友可以过来参考下,喜欢的可以点个赞,希望能对大家有所帮助。应用场景:

写在前面:

在写页面的时候,偶尔有时会遇到下图这两种情况,一种是单词过长时会溢出div,一种是直接换行,导致出现空白区域。这两个情景就需要word-wrap、word-break这两个属性出场来解决了。闲话不扯了,本文主要内容有:word-wrap和word-break属性介绍,使用方法,他们之间的区别,浏览器兼容性,demo链接。需要的朋友可以过来参考下,喜欢的可以点个赞,希望能对大家有所帮助。


应用场景:

属性的应用场景

word-wrap和word-break是什么?

在mozilla的官网上找到如下的解释:

image.png

经过翻译:word-wrap:

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

word-break:

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

何谓单词内断句?

image.png

这个单词没有发生单词内断句的情况,这个单词太长了,溢出了容器的范围。

下面是发生了单词内断句的情况实例:

image.png

这里面分别使用了word-wrap:break-word;和word-break:break-all;这里可以看到,效果是一样的,下面再说说他们的区别。

word-wrap的属性介绍

image.png

w3c:word-wrap

word-wrap的浏览器支持情况:

image.png

语法:

/* 二选一 */
word-wrap: normal;
word-wrap: break-word;

解析:

normal就是大家平常见得最多的正常的换行规则,break-word如果长单词超出了一行的长度的话,在一行中有可以换行的标点时就换行,实在没有可以换行的地方时,才在单词中间换行。(这句的解析入下图)

image.png

上图就是:一行中有可以换行的标点时就换行实在没有可以换行的地方时,才在单词中间换行

word-break属性的属性介绍:

image.png

w3c上关于word-break属性的介绍

浏览器支持:

image.png

除了opera不支持以外,其他都支持(火狐也从不支持改为支持了)!

语法使用:

/* 默认normal */
word-break: normal; 
word-break: break-all; 
word-break: keep-all;

解析:几个关键字值的含义如下:

normal

   使用默认的换行规则。

break-all

   允许任意非CJK(Chinese/Japanese/Korean)文本间的单词断行。(这里是CJK中文,日文,韩文的意思)

keep-all

不允许CJK(Chinese/Japanese/Korean)文本中的单词换行,只能在半角空格或连字符处换行。非CJK文本的行为实际上和normal一致。(一致性可看下图的demo效果)

image.png


word-break:break-all和word-wrap:break-word之间的区别:

其实可以从上述demo栗子中看出来:

word-break:break-all碰到英文单词统统都换行,只要到了容器的边界就会换行不浪费一点空间,一点空隙都不放过。

word-wrap:break-word在一行中有可以换行点时就换行实在没有可以换行的地方时,才在单词中间换行。

这里所说的换行点指的是:如空格,或CJK(Chinese/Japanese/Korean)(中文/日文/韩文)之类的,让这些换行点换行,至于对不对齐,好不好看,则不关心,因此,很容易出现一片一片牛皮癣一样的空白的情况。


后话:

以上就是本文的内容了,其实大概分清他们的区别,以后碰到这类型问题,知道需要用哪个属性来解决就好了


目录
相关文章
|
4月前
|
小程序
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
140 1
word长公式不换行显示的方法
word长公式不换行显示的方法
【Word】删除页眉底部横线
【Word】删除页眉底部横线
87 0
Word - 为何在 Word 中打字时未到行尾就自动换行?
Word - 为何在 Word 中打字时未到行尾就自动换行?
817 0
Word - 为何在 Word 中打字时未到行尾就自动换行?
|
小程序
小程序填充文本怎么换行
小程序填充文本怎么换行
135 0