小程序踩坑记录之:纯英文文本不会换行

测试时候遇到一个非常离谱的Bug:
一个view设置了marglin-left属性,输入中文或中英文混合都正常显示,唯独遇到纯英文文本时候就失效,如图:
在这里插入图片描述

一开始以为又是模拟器的bug,真机调试发现也是这样,不光是微信如此,抖音和快手也是同样情况,于是确定了是我代码的问题。
所以为什么纯英文会显示异常,中文或者中英文混合就没事呢?打开浏览器一顿猛搜,终于搞明白了:
css有一个属性word-break,也就是断行规则,他的默认值是normal,这个normal具体规则如下:
·空格和标点符号:大多数语言(包括英语、中文等)的单词或短语之间通常有空格或标点符号作为自然断行点。浏览器在换行时会优先考虑这些位置。
·连字符:对于跨行的长单词,如果单词内包含连字符(如英语中的复合词),浏览器可能会在该连字符处进行断行。
·避免单词内断行:默认情况下,浏览器会尽量避免在单词内部进行断行,除非绝对必要(如单词太长而无法放在当前行内)。
·CJK(中文、日文、韩文)文本:对于CJK文本,由于单词之间通常没有空格分隔,浏览器会根据字符的显示宽度和容器的边界来决定是否换行,但通常不会在字符内部断开。
·长字符串和URL:对于非常长的字符串(如连续的文本行或URL地址),如果它们超出了容器的边界,浏览器可能会尝试在适当的位置进行断行,但这可能不总是符合文本的语义结构。

这就是问题的所在了,输入一串英文字母的时候,被默认当成一个单词,导致没有换行
在这里插入图片描述

解决方法:
将word-break属性设置为:break-all。

word-break:break-all;

不管你哪国的语言,只要超出容器宽度统统给我换行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值