详解CSS中基础的控制文本换行的方法

2020/05/14 CSS

我们一般控制换行所用到的CSS属性一共有三个:word-wrapword-breakwhite-space。这三个属性可以说是专为了文字断行而创造出来的。本文就简单介绍了这三种属性和如何使用它们来控制文本换行。

word-wrap

word-wrap属性在各个浏览器均能识别,其属性值描述如下(默认是normal):

.text {
    word-wrap: normal | break-word
}

属性值含义

normal:允许内容顶开指定的容器边界。
break-word:内容将在边界内换行。必要时会触发word-break(注意:请分辨清楚word-breakbreak-word这俩个是不同的东西,前者是属性,后者是属性值)。

属性说明

word-wrap是控制是否“为词断行”的,设置或检索当前行超过指定容器的边界时是否断开转行。如果不存在其他属性(例如word-break等)的影响,word-wrap的值为break-word的情况下,如果文本末端有长单词,则会被放到下一行,并且可能发生截断。

实例

一个word-wrap的实例如下图所示:

Hint

作用范围仅为div这类标准块级元素,thtd这类table元素虽然识别但是没有效果(如果为tdth加上宽度word-wrap在IE下是能够发挥效果的)。

word-break

word-break属性在各个浏览器均能识别,其属性值描述如下(默认是normal):

.text {
    word-break: normal | break-all | keep-all  break-word
}

属性值含义

normal:默认值,依据默认的换行规则(英文不允许单词内截断)。
break-all:防止文本溢出,单词允许在任意两字符之间截断。
keep-all:与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。 break-word:为了防止文本溢出,单词允许在任意点截断(W3C规则,可能指的是字符不完整的截断)

属性说明

word-break: break-all,是断开单词。在单词到边界时,下个字母自动到下一行。不会出现长单词被强制放到下一行,然后再发生截断的问题。

实例

一个word-break的实例如下图所示:

Hint

作用范围仅为div这类标准块级元素,thtd这类table元素虽然识别但是没有效果(经测试Chrome下word-break: break-all是有效果的)。

white-space

white-space属性在各个浏览器均能识别,其属性值描述如下(默认是normal):

.text {
    white-space: normal | pre | nowrap
}

属性值含义

normal:默认。空白会被浏览器忽略。
pre:空白会被浏览器保留。其行为方式类似HTML中的pre标签。
nowrap:文本不会换行,文本会在在同一行上继续,直到遇到br标签为止。

实例

一个white-space的实例如下图所示:

Search

    Table of Contents