解决方案
line-break: anywhere;
问题
如图,红色框住的部分是元素本身宽度, 其他手机都在文本超出后正常换行,iphone14文本却超出宽度后扔不换行
解决过程
首先使用了这3个属性
white-space:pre-wrap;(连续的空白符会被保留。在遇到换行符或br元素,或者需要为了填充「行框盒子 (line boxes)」时才会换行。)
word-break: break-all;(对于 non-CJK (CJK 指中文/日文/韩文) 文本,可在任意字符间断行)
word-wrap: break-word;(在长单词或 URL 地址内部进行换行)
发现都没用
经过尝试发现如果换行处是*号就不会自动换行, 经查询line-break这个属性可以解决这种情况
mdn查看 -> line-break
设置 CSS 属性 line-break 可以用来处理如何断开(break lines)带有标点符号的中文、日文或韩文(CJK)文本的行。
line-break: anywhere;
| 属性值 | 描述 |
|---|---|
| auto | 使用默认的断行规则分解文本。 |
| loose | 使用尽可能松散(least restrictive)的断行规则分解文本。一般用于短行的情况,如报纸。。 |
| normal | 使用最一般(common)的断行规则分解文本。 |
| strict | 使用最严格(stringent)的断行原则分解文本。 |
| anywhere | 在每个印刷字符单元(typographic character unit)的周围,都有一个自动换行(soft wrap)的机会,包括任何标点符号(punctuation character)或是保留的空白字符(preserved white spaces),或是单词之间。但忽略任何用于阻止换行的字符,即使是来自 GL、WJ 或 ZWJ 字符集的字符,或是由 word-break 属性强制的字符。不同的换行机会拥有相同的优先级。也不应用断字符(hyphenation,可能是 "-") |