無空格連續長字符在IE與FF下有時候能實現自動換行,因為浏覽器將它看成是一個長單詞了。IE下很簡單,給容器比如一個p定義Word-wrap屬性即可:
示例代碼 [www.mb5u.com]
p {word-wrap:break-Word;}
對於Firefox,至少現在用CSS是沒有辦法解決的,大多數是用overflow將撐出的部分隱藏或者加滾動條,因為Word-wrap不是css2的標准屬性,所以Mozilla不支持這個。既然CSS無法做到,那麼只有使用JS的方法了。
首先給這個容器p一個ID“#hh”,然後在頁面中插入一段JS:
示例代碼 [www.mb5u.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)是每行的字母的數目,不過它不能分辨每個詞的長度,就是說英文單詞會全部被截斷,不管是不是連續的長字符,這不符合書寫習慣也不利於閱讀,但是這是偶找到比較好的解決辦法。