me

文本换行


今天发现 blog 的文章文字溢出,其实这种情况也不是一次两次了,所以就准备总结一下文本的换行问题。

文字换行

不同的文字换行是不同的

Tip

如果是汉字,在没有标点的情况下,任意的文字都是换行点;如果有标点,有些标点不能出现在开头,有些标点不能显示在结尾

英文字符只能在某些特定的中断字符那里才会触发换行

overflow-wrap

overflow-wrap: normal | break-word | anywhere;

break-wordanywhere 区别:如果是自适应的宽度,那们 width: min-content 的大小第一个会是最长单词的宽度,而 anywhere 将每个字母都会换行,宽度就是字母宽度。

word-break

word-break: normal | break-all | keep-all;

white-space

white-space 属性用于设置如何处理元素内的空白字符,这里的空白指的是 HTML 文件中的留白。

white-space: normal | nowrap | pre | pre-wrap | pre-line | break-spaces;

line-break

用来处理如何断开(break lines)带有标点符号的中文、日文或韩文(CJK)文本的行。

文字溢出

web 默认的换行特性带来的连续英文宽度溢出问题

break-all 断开了单词或者固定词组,因为小部分的场景的排版问题,牺牲了大多数场景的阅读体验

/* 字符换行 */
word-break: break-all;
/* 破折号换行 */
overflow-wrap: break-word;

hyphens

在英文文字换行的时候自动添加连接符(-

hyphens: none | manual | auto;

<wbr></wbr>:表示有机会才换行

wbr:after{
  content:"\00200B";
}

总结

参考:https://juejin.cn/post/7111880813230161933