快速业务通道

怎样用CSS解决英文单词的自动换行的问题

作者 佚名技术 来源 CSS编程 浏览 发布时间 2012-05-26

防止表格/层撑破又防止单词断裂


英文单词的自动换行问题可以说折磨过很多人
如果一个单词写很长,会把表格给撑破的,而管了的话就会拆开英文单词.

防止表格被撑破

这个问题曾经有很多人提及的,后来在早期的版本里我也解决过,可是导致了英文词语被拆散换行,所以在做新的模板时没有加上控制此项的一些css码。今天试验了一下,发现解决的方法很简单。


按照网上大多数文章的说法,只要在CSS中加入:
代码
..........


table {

table-layout:fixed;word-break:break-all;word-wrap:break-word;}

div{word-break:break-all;word-wrap:break-word;}


就可以解决表格和层被撑破,最初我也是这样做的。不过这样的代码会造成一个问题,你会发现英文词全部被截断了,这不符合英语的书写习惯也不利于阅读。

后来我发现上述代码改写一下就可以做到既防止表格/层撑破又防止单词断裂了。
如下:
代码

table {
table-layout: fixed;
word-wrap:break-word;
}
div {
word-wrap:break-word;
}

这也是现在我用的代码。
-----------------------------------------------------

根据 苏昱(Rainer Su) 的 CSS2中文手册

word-break版本:IE5+专有属性 继承性:有
语法:
word-break : normal | break-all | keep-all
取值:
normal :  默认值。允许在词间换行
break-all :  该行为与亚洲语言的 normal 相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本
keep-all :  与所有非亚洲语言的 normal 相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本

说明:
设置或检索对象内文本的字内换行行为。尤其在出现多种语言时。
对于中文,应该使用 break-all 。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 wordBreak 。
示例:
div {word-break : break-all; }
应用于:
IE5.0+

word-wrap版本:IE5.5+专有属性 继承性:有
语法:
word-wrap : normal | break-word
取值:
normal : 默认值。允许内容顶开指定的容器边界
break-word : 内容将在边界内换行。如果需要,词内换行( word-break )也将发生

说明:
设置或检索当当前行超过指定容器的边界时是否断开转行。
此属性仅作用于有布局的对象,如块对象。内联要素要使用该属性,必须先设定对象的 height 或 width 属性,或者设定 position 属性为 absolute ,或者设定 display 属性为 block 。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 wordWrap 。
示例:
div { word-wrap: break-word; word-break: break-all; }


注意这个
break-word : 内容将在边界内换行。如果需要,词内换行( word-break )也将发生

所以 word-wrap够用了,默认会不拆开单词换行,但是如果真有一个非常长的单词,比如上次某发错了版的史上最恐怖的12个英文单词,它也是会拆行的,这样避免了表格被撑坏。
不过这个没有被w3c作为css2的标准,所以Mozilla 不支持这个属性,如果大家都好好写英文单词就没事情,Firefox也是不拆开单词换行的,如果碰到有人写很长的单词,Mozilla Firefox就不会换行一直撑破了。
不知道css3会不会把这个属性接受进去,不过说实话,太BT的单词还好是...

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号