[转]如何跨浏览器使用连续字符的换行
2008-11-21 17:06
323 查看
转自:http://www.planabc.net/2008/07/03/cross_browser_word_breaker/
由于连续的字符(字母、符号、数字)在默认情况下是不换行的,可能会破坏整个界面布局。
那如何解决这个问题呢?
在 IE 和 Safari 1.3+ 下相对比较容易解决,使用 CSS 属性 word-wrap: break-word;。有朋友会问为什么不是使用 word-break:break-all; ,因为有一个特殊的情况,该属性无法解决换行——连续的英文标点符号。
注:word-break 主要使用在 CJK 文本,即:中文(Chinese)、日文(Japanese)、韩文(Korean)。
而 Firefox 和 Opera 浏览器,无法识别 word-wrap: break-word; 和 word-break:break-all; 属性。可以通过脚本给连续字符的每个字符之间插入 " u8203 的字符(该字符在非 IE 浏览下不占据空间),使连续变为了不连续,达到了换行的效果。
详细的脚本,可参看 Hedger Wang 整理的脚本《Cross Browser Word Breaker》
对于 Firefox ,你还可以通过 XBL bindings 来实现此效果:《Emulating CSS word-wrap for Mozilla/Firefox》
由于连续的字符(字母、符号、数字)在默认情况下是不换行的,可能会破坏整个界面布局。
那如何解决这个问题呢?
在 IE 和 Safari 1.3+ 下相对比较容易解决,使用 CSS 属性 word-wrap: break-word;。有朋友会问为什么不是使用 word-break:break-all; ,因为有一个特殊的情况,该属性无法解决换行——连续的英文标点符号。
注:word-break 主要使用在 CJK 文本,即:中文(Chinese)、日文(Japanese)、韩文(Korean)。
而 Firefox 和 Opera 浏览器,无法识别 word-wrap: break-word; 和 word-break:break-all; 属性。可以通过脚本给连续字符的每个字符之间插入 " u8203 的字符(该字符在非 IE 浏览下不占据空间),使连续变为了不连续,达到了换行的效果。
breakWord = function(dEl){ var dWalker = document.createTreeWalker(dEl, NodeFilter.SHOW_TEXT, null, false); var node,s,c = String.fromCharCode('8203'); while (dWalker.nextNode()){ node = dWalker.currentNode; s = trim( node.nodeValue ) .split('').join(c); node.nodeValue = s; } return true; }
详细的脚本,可参看 Hedger Wang 整理的脚本《Cross Browser Word Breaker》
对于 Firefox ,你还可以通过 XBL bindings 来实现此效果:《Emulating CSS word-wrap for Mozilla/Firefox》
相关文章推荐
- 如何跨浏览器使用连续字符的换行
- 如何跨浏览器使用连续字符的换行
- 如何跨浏览器使用连续字符的换行
- 自动换行问题,而连续的数字和英文字符常常将容器撑大,下面介绍的是CSS如何实现换行的方法
- 在输入中如何忽略换行字符
- Android中使用react-native框架中的View组件如何使其中的文本换行
- 解释一下你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
- 解释一下你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
- WebRTC 基础:WebRTC 如何以及为什么使用你的浏览器地址
- 《如何使用Javascript判断浏览器终端设备》
- Vi 中如何复制几个连续的字符
- 如何使用指定浏览器打开网页
- 如何使用 ASP.NET 和 Visual C# .NET 向浏览器写入二进制文件
- 在Windows7 IE8浏览器中如何使用支付宝和数字证书
- 如何在Visual Studio中直接使用示例代码浏览器搜索下载和管理代码示例
- [Selenium] 如何在老版本的Chrome 浏览器上使用selenium
- Eclipse的使用技巧之如何出现全部提示字符
- 如何根据User Agent参数字符串判断客户端使用的是什么浏览器的版本及类型
- 如何使用指定浏览器打开网页
- 如何不允许用户使用浏览器的『后退按钮』查看前面缓存下来的页面