展会信息港展会大全

css word-break 和 word-wrap自动换行详解
来源:互联网   发布日期:2016-03-25 16:14:10   浏览:2352次  

导读:前几天组内有同学问我关于单字节的长字符截断问题,原以为很简单的只要用word-break:break-all;和word-wrap:break-word;就能解决所有问题了。事实上这个的确能让长字...

前几天组内有同学问我关于单字节的长字符截断问题,原以为很简单的只要用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代码结构

<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">assssssssssssssssssssssssssssssssssssssssss333333333

代码如下

复制代码

412341234adsfadfzxcvzcvdfgfnasdfadzvasdf234234adfvczx

代码如下

复制代码

cvasdfasdf234adfzszxcvasdfasdf234234234azcvasdfad

代码如下

复制代码

fasdf234adfasdf</div>

然后这个是CSS代码,这部分的代码是结合word-break 和 word-wrap 在各个浏览器中的效果 用力点击蓝色文字

这段代码

代码如下

复制代码

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

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港