CSS-字体英文换行问题

比如在div中定一个宽度为200px的div,内部有些字体,如果全是中文或者全是英文换行后则占满,但如果中文后面接英文后,如果英文最后例如HOLLOWORD中的D不是在一行末尾的话则会直接换行,第一行是测试用例换行,第二行则是HOLLOWORD




    
    
    
    Document



    
测试用例换行HOLLOWORD

图中所示:

全是中文:全是中文则div内部会进行字体占满

image.png

前面中文后面英文:如果多个中文和多个英文(数字)拼接在一起,且英文(数字)末尾字母超出当前行,那么整个英文则会自动换行不会进行位置占满(无论英文是小写(数字)还是小写结果都是一样)

image.png

前面英文(数字)后面中文:


S$GT$`D0$R%9YC}ZV`LFRFB.png

两边英文(数字),中间中文:


image.png

如果全是英文(数字):


image.png

根本原因

中英文断词方式不一样

这是因为div中,英文字母之间没有空格的话,它会默认认为这是一个英文单词,所以单词就一次输出不换行。那么,难道我们得在每个字母中间加入一个空格来解决这个问题么?其实不用的,可以通过CSS实现

解决办法

在div的style中设定 word-break:break-all; 允许单词内换行即可实现自动换行

.desca{
        width: 200px;
        height: 200px;
        border: 1px solid #ccc;
        word-break:break-all;
    }

image.png

你可能感兴趣的:(CSS-字体英文换行问题)