当前位置: 首页 > Web前端 > CSS

css文字换行总结

时间:2023-03-31 14:01:10 CSS

文字过长,元素宽度容纳不下文字内容,文字超出元素显示。对于这种情况,一般有两种处理方式。一种是省略内容不显示,很暴力,很直接,还有一种就是换行显示。下面我将介绍几种常用的css换行方法。word-break这个属性相信大家都不陌生。在介绍这个属性之前,我们先介绍一个缩写CJK:中日韩统一表意文字。该术语将在以下介绍中使用。先简单介绍下word-break的几个属性:normal:使用默认的换行规则break-all:对于非CJK文字,可以在任意字符处换行keep-all:CJK文字不停,非-CJK文本的行为与普通文本相同让我们看几个例子:试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验试验。>div{宽度:100px;word-break:normal;}当word-break正常时,可以看到CJK文字在使用默认规则时会自动换行,非CJK文字不会自动换行,会超出容器,但是在找到内容的时候比如空格可以作为换行的依据,非CJK内容也可以实现换行。如果放不下就立即换行,不管是中日韩内容还是非中日韩内容,也可以理解为break-all把非中日韩内容当成中日韩div{width:100px;word-break:keep-all;}从上面看:keep-all属性正好和break-all相反,将CJK内容当成非CJK内容处理overflow-wrap。可能有人会觉得这个属性有点奇怪,但是我说word-wrap想必大家都不陌生,其实就是word-wrap只是换了个名字而已,属性值完全一样。下面介绍一下它的属性值:normal:表示在一个普通单词的末尾换行break-word:表示如果行中没有多余的空间来容纳这个单词to末尾,那些不能换行的普通单词besplit将被强制拆分为换行符。让我们看一个例子:div{width:100px;overflow-wrap:break-word;}从上面的例子可以看出:当属性值为break-word时,到达容器边界时,如果word还没有结束,也会自动换行。如果发现表示单词结束的空格,就会判断当前行剩余的宽度是否可以容纳下一个单词。如果没有,它将执行换行以避免单词溢出。属性值:normal:连续的空格会被合并,换行符会被当作空格处理。填充行框时,如有必要,将添加换行符。nowrap:像往常一样,连续的空白将被合并。但文本中的换行符无效。pre:将保留连续的空白字符。遇到换行符或
元素时会发生换行。预换行:将保留连续的空白字符。当遇到换行符或
元素时,或者需要填充行框时,就会出现换行符。pre-line:将合并连续的空白字符。当遇到换行符或
元素时,或者需要填充行框时,就会遇到换行符。下面看几个具体的例子:

testtesttesttesttesttesttesttesttesttest
div{width:100px;white-space:normal;}在上面的例子中,为了查看空格是否会被合并字符,特意在div前面加了两个空格。可以看出,当取值正常时,会合并连续的空白,换行符会被当做空白处理。合并连续空白div{width:100px;white-space:pre;}可以看到pre的值,会保留连续的空白,只有遇到换行才会换行div{width:100px;white-space:pre-wrap;}可以看到pre-wrap的值,它会保留连续的空白,遇到换行或者需要打断div时会换行{width:100px;white-space:pre-line;}pre-line的值可以看出,会合并连续的空白字符,遇到换行符或者需要换行时会换行。line-break此属性用于指定如何换行。属性值:自动|宽松|正常|严格|anywhere目前还在WorkingDraft阶段,在chrome中测试了w3c地址,发现这些属性值并没有像官方说的那样对文本换行有影响。我们需要继续关注未来的发展。字符连接词属性值:无|手册|auto具体例子见:
abashdgsgdjagdjasddnsadvadfjasdgagdagsjdgasgdajsghsa
testtestStrawberrytesttesttesttesttesttesttesttest
div{width:100px;hyphens:none;}当属性值为none时,只会在有空格的地方换行div>div{宽度:100像素;hyphens:manual;}从例子中可以看出,当属性值为manual时,只有出现空格和连接符时才会出现换行
abashdgsgdjagdjasddnsadvadfjasdgagdagsjdgasgdajsghsa
testtest测试测试测试测试
div{width:100px;hyphens:auto;}当值为auto时,浏览器会判断哪里可以换行,然后自动在换行位置加上连字符属性也在WorkingDraft阶段。w3c地址需要您后续持续关注。总结以上是一些将用于css文本换行的属性的简要总结。需要更多的精力去配合其他属性的使用,需要更多的时间去探索。这也是CSS中一个有趣的部分。不同的组合有不同的可能性,欢迎点赞收藏