无空格连续长字符在IE与FF下有时候能实现自动换行,因为浏览器将它看成是一个长单词了。IE下很简单,给容器比如一个p定义word-wrap属性即可:
Example Source Code
[www.21shipin.com]p {word-wrap:break-word;}
对于firefox,至少现在用CSS是没有办法解决的,大多数是用overflow将撑出的部分隐藏或者加滚动条,因为word-wrap不是css2的标准属性,所以Mozilla不支持这个。既然CSS无法做到,那么只有使用JS的方法了。
首先给这个容器p一个ID“#hh”,然后在页面中插入一段JS:
Example Source Code
[www.21shipin.com]<script type=\"text/javascript\">
function toBreakWord(intLen){
var obj=document.getElementById(\"hh\");
var strContent=obj.innerHTML;
var strTemp=\"\";
while(strContent.length>intLen){
strTemp =strContent.substr(0,intLen) \"
\";
strContent=strContent.substr(intLen,strContent.length);
}
strTemp =\"
\" strContent;
obj.innerHTML=strTemp;
}
if(document.getElementById && !document.all) toBreakWord(40)
</script>
其中最后一句括号中的(40)是每行的字母的数目,不过它不能分辨每个词的长度,就是说英文单词会全部被截断,不管是不是连续的长字符,这不符合书写习惯也不利于阅读,但是这是偶找到比较好的解决办法。