发现用户名称被隐藏掉半个汉字很别扭!!
那么如何避免这种情况呢!
一般中文字体我们都设置了自动换行,也就是说每个汉字都被打散成了独立的元素;当一行汉字的宽度超过容器宽度是就折行显示,那么汉字是如何折行的呢?我们 常会设置一个列表左浮动来横向显示一组数据,当我们不设置li元素宽度,而父容器有不能刚好装下整数的li元素里,ie下就会发生一种现象(这样的现象我 们层遇到过2次,都是没有给容器指定宽度造成的),这就是最后一个不能被完整包容的li元素里的问题会沿着容器右边界按一个字的宽竖向排开,在不设置正确 高度的情况下,这个现象不受overflow:hidden的影响!当我们给li设置宽度的情况下,最后面这个不能被完全包容的li就折到下行显示。
这种情况就恰好说明了浏览器换行的机制,这个机制就是在不设置父层元素宽度的情况下,浏览器会按照最后一个不可分拆的元素的宽度进行折行,在亚洲语系中这 个最后不可分的元素就是一个独立的字体。
写到这里半字之痒的谜底就解开了,那就是不要给汉字设置white-space:nowarp;和white-space:pre; 更不要在使用文字打散属性word-break:break-all;的时候再去使用word-break:keep-all属性。
ps:word-break:keep-all; 使文字与非亚洲语系的文字保持一致!(英文是不会换行的哦!)
时间: 2024-09-18 18:11:13