无空格连续字符自动换行解决方案2

2005年12月17日   出处:郭爽的Blog编辑:base
共有 8896 位读者读过此文
这绝对是老生常谈了。今天大概看了看,有些小发现。

CODE
<style>
div {width:300px;border:solid 1px #000}
</style>
<div>http://blog.guoshuang.com/david/index.asp?vt=bycat&cat_id=31</div>
<div>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>


运行这段代码,无论opera,firefox,ie都会出现溢出的现象。小区别在于 firefox 甚至连 / 号也不能自动断开。

IE解决办法

很简单,如下:

CODE
<style>
div {width:300px;border:solid 1px #000;word-break:break-all;}
</style>
<div>http://blog.guoshuang.com/david/index.asp?vt=bycat&cat_id=31</div>
<div>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>


但这样无法通过目前的html验证,word-break:break-all 属于CSS3的范围。为了验证,你可以用IE注释判断

CODE
<!--[if IE]>
<style>
div {word-break:break-all;;}
</style>
<![endif]-->
<style>
div {width:300px;border:solid 1px #000;}
</style>
<div>http://blog.guoshuang.com/david/index.asp?vt=bycat&cat_id=31</div>
<div>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>


firefox解决办法

在中间适当位置加入 wbr标签。

CODE
<style>
div {width:300px;border:solid 1px #000;}
</style>
<div>http://blog.guoshuang.com/<wbr>david/<wbr>index.asp?vt=bycat&cat_id=31</div>
<div>aaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaa</div>


opera解决办法

至少目前的opera 8.5版本还不支持 wbr标签。你可以用 ​或者 &shy;来代替。

CODE
<style>
div {width:300px;border:solid 1px #000;}
</style>
<div>http://blog.guoshuang.com/​david/​index.asp?vt=bycat&cat_id=31</div>
<div>aaaaaaaaaa​aaaaaaaaaaaaaaaaaaaaaaaa​aaaaaaaaaaaaaaaaa</div>


兼容性问题:

IE(6以上版本) 认识 wbr &shy; 不认识 ​
firefox 认识 wbr ​ 不认识 &shy;
opera 认识 ​ &shy; 不认识 wbr

firefox和opera统一使用 wbr,而指定wbr:after后面软换行。

CODE
<style>
div {width:300px;border:solid 1px #000;}
wbr:after { content: "\00200B" }
</style>
<div>http://blog.guoshuang.com/<wbr>david/<wbr>index.asp?vt=bycat&cat_id=31</div>
<div>aaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaa</div>


opera也可以使用 连字符 效果来标识换行的发生。

CODE
<style>
div {width:300px;border:solid 1px #000;}
wbr:after {content: "\00AD";}
</style>
<div>aaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaa</div>

Copyright © 2016

www.FTSYS.net.All Rights Reserved.