众所周知,对于类似"aaaaaaaaaaaaaaaaa"这样超长的字符串,会把容器撑的变形.
废话不多说,解决方法:
1. IE : 在相应位置增加如下样式表定义即可
word-break: break-all;
2. FF : Firefox并不像IE那样听话,自从FF的第一个版本至今,仍然没有解决此问题,而上面的方法也不起作用,只能用javascript来控制了,将如下代码放置在需要折行显示的下面即可
<script language="javascript" type="text/javascript" defer="defer"> javascript:(function(){var D=document; F(D.body); function F(n){var u,r,c,x; if(n.nodeType==3){ u=n.data.search(/\S{10}/); if(u>=0) { r=n.splitText(u+10); n.parentNode.insertBefore(D.createElement("WBR"),r); } }else if(n.tagName!="STYLE" && n.tagName!="SCRIPT"){for (c=0;x=n.childNodes[c];++c){F(x);}} } })(); </script>
3.除了javascript方法外,我们还可以通过CSS样式来控制折行:
pre{ white-space: pre; /* CSS2 */ white-space: -moz-pre-wrap; /* Mozilla */ white-space: -hp-pre-wrap; /* HP printers */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: pre-wrap; /* CSS 2.1 */ white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */ word-wrap: break-word; /* IE */ }
如果想控制DIV和TD强制不折行,可以用style="white-space:nowrap;"(通用)。