CSS-字体英文换行问题

html-css013

CSS-字体英文换行问题,第1张

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

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

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

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

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

如果全是英文(数字):

中英文断词方式不一样

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

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

原来有很多人也遇到了同样的问题:例如:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa不能处理自动换行,将表格伸的很长很长,而汉字字符却可以自动换行。其中的原因是:英文字母之间如果没有空格,系统认为是一个单词,就不会自动换行。汉字就没有这种情况。解决办法:用表格把要显示的内容装起来。 在<table>标签中加入“style='TABLE-LAYOUT: fixed'”,在需要强制单词换行的<td>标签中加入“style='word-WRAP: break-word'”。这样就可以了。Div 中: div 实现长英文字母自动换行CSSIE浏览器 #wrap{white-space:normalwidth:200px}或者#wrap{word-break:break-allwidth:200px}

强制不换行

div{

white-space:nowrap

}

自动换行

div{

Word-wrap:

break-word

wo

强制不换行

div{

white-space:nowrap

}

自动换行

div{

Word-wrap:

break-word

word-break:

normal

}

强制英文单词断行

div{

word-break:break-all

}

CSS设置不转行:

overflow:hidden

隐藏

white-space:normal

默认

PRe

换行和其他空白字符都将受到保护

nowrap

强制在同一行内显示所有文本,直到文本结束或者遭遇

br

对象

原文转自站长网

设置强行换行:

word-break:

normal

依照亚洲语言和非亚洲语言的文本规则,允许在字内换行

break-all

:

 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本

keep-all

:

 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本与之间的高度解决办法

英文不换行

CSS里加上

word-break:

break-all

问题解决。这个问题只有IE才有,在FF下测试,FF可以自己加滚动条,这样也不影响效果

建议大家做Skin时,记得在body里加

word-break:

break-all

这样可以解决IE的框架被英文撑开的问题

以下引用word-break的说明,

注意word-break

是IE5+专有属性

语法:

word-break

:

normal

|

break-all

|

keep-all

参数:

normal

:

 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行

break-all

:

 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本

keep-all

:

 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本

说明:

设置或检索对象内文本的字内换行行为。尤其在出现多种语言时。

对于中文,应该使用break-all

对应的脚本特性为wordBreak。请参阅我编写的其他书目。

示例:

div

{word-break

:

break-all

}