在word-wrap和word-break之间的纠结关于文本断行的样式

来源:互联网 发布:网络重庆时时彩代理 编辑:程序博客网 时间:2024/05/17 02:48

突然间发觉自己一直以来都是用以前的思维方式在写页面,很多细节的东西并未注意到。前几天组内有同学问我关于单字节的长字符截断问题,原以为很简单的只要用word-break:break-all;word-wrap:break-word;就能解决所有问题了。事实上这个的确能让长字符的单字节文本在块元素中被截断。

虽然是被截断了,但细节的问题还是存在,比如一个单词不希望被截断的时候也被截断了,这样就悲催了。如图:

正常来说,一个英文单词再怎么样也不太可能会非常非常的长,一般都是测试人员在做页面测试的时候,使用了很长很长的单字节连续的字符,才会出现这样的问题。那么如果这个时候把word-break:break-all;换成word-break:keep-all;的话,情况又会改变了,如图:

单词能正常显示,而很长的长字符就会被强制换行了。上面两张截图是来自 Chrome 20.0.1132.57 m 版本的浏览器,如果在FF和IE中查看的话,IE这神奇的宝贝又出现了一个情况,中文字符中,以标点符号为基准来强制换行,如果没有标点符号的话,那么又一切正常,如图:

这个时候我已经开始迷惑了,到底应该是用哪个好呢?正常来说我们肯定是希望单词能正常换行而不是强制被断行,如果是这样的话,我们就应该是使用word-break:keep-all;word-wrap:break-word;的组合,但这样的话,IE浏览器的换行实在是太过于可怕了,纠结啊。

思前想后,这个还是以文本能正常被截断,还是放弃IE这个鸟玩意,断行就用word-wrap:break-word;这样一个算了吧,使用word-wrap:break-word;这个的话,各个浏览器都支持强制换行,如果遇到空格或者标点符号也会换行,一切都是那么滴完美。 (^。^)y-~~

下面这个是我测试时使用的HTML代码结构:

?View Code XML
123
<div class="word_break">文字啊文字,这里其实就是文字,想要更多的文字,那就开始复制……文字啊文字,这里其实就是文字,想要更多的文字,那就开始复制……文字啊文字,这里其实就是文字,想要更多的文字,那就开始复制……假如这里的文字内容是很长很长的话又没有标点符号的话那将会是怎么样的效果呢。结束!</div><div class="word_break">test text txt word copy now! test texttexttexttexttext txt word copy now! test text txt word copy now! test text txt word copy now! test text txt word copy now! test text txt word copy now! test text txt word copy now! </div><div class="word_break">assssssssssssssssssssssssssssssssssssssssss333333333412341234adsfadfzxcvzcvdfgfnasdfadzvasdf234234adfvczxcvasdfasdf234adfzszxcvasdfasdf234234234azcvasdfadfasdf234adfasdf</div>

然后这个是CSS代码,这部分的代码是结合http://lab.linxz.de/word_break.html这个工具来使用的。

?View Code CSS
1
.word_break {float:left;width:200px;margin:10px;padding:10px;font-size:16px;font-family:simsun;border:1px solid #242424;zoom:1;}

以上的言论不正确的地方望大家多多指教。

原创粉丝点击