CSS:如何在一个<td>中包装没有空格的文本?

我用过:

word-break:break-all; table-layout:fixed 

文字包装在Chrome中,但不包含Firefox。

更新:我决定改变devise,所以它不需要包装; 试图解决一个CSS修复/黑客被certificate是太令人沮丧和耗时。

尝试这个,我认为这将适用于像“AAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRGGGGGGGGGGGGGGGGGGGGG”会产生

 AARRRRRRRRRRRRRRRRRRRR RRGGGGGGGGGGGGGGGGGGGG G 

我从Google上的几个不同的网站上拿过我的例子。 我已经在ff 5.0,IE 8.0和Chrome 10上testing过了。

 .wrapword{ white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ white-space: -webkit-pre-wrap; /*Chrome & Safari */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* css-3 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ word-break: break-all; white-space: normal; } <table style="table-layout:fixed; width:400px"> <tr> <td class="wrapword"> </td> </tr> </table> 

使用CSS3 word-wrap: break-word; 。 在基于WebKit的浏览器(Safari,Chrome)中也是如此。

更新 :我忘了,有问题的元素必须隐式或显式定位为固定元素或显示为块元素。 对于表格单元( td ),使用display: inline-block;

对于自动表格布局,尝试将相关的td与属性max-width和word-wrap结合起来。

例如: <td style="max-width:175px; word-wrap:break-word;"> ... </td>

testingFirefox 32,Chrome 37和IE11。

设置td标签的列宽。

这是OP要求的高级版本。

有时候会发生什么呢,我们的客户希望我们在文字中断之后给“ – ”。

喜欢

 AAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBB 

打破

 AAAAAAAAAAAAAAAAAAAAAAA- BBBBBBBBB 

所以,如果支持,就会有新的CSS属性,通常在最新的浏览器中支持。

 .dont-break-out { /* These are technically the same, but use both */ overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; /* This is the dangerous one in WebKit, as it breaks things wherever */ word-break: break-all; /* Instead use this non-standard one: */ word-break: break-word; /* Adds a hyphen where the word breaks, if supported (No Blink) */ -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } 

我正在使用这个。

我希望有人会有这样的需求。

您可以手动注入零宽度空格(&#8203;)来创build断点。

这样做的一个稍微hackish的方式是通过处理文本在每个字母之间添加空格。 将空格replace为&nbsp; 然后使用letter-spacing css属性将空格向下。

我知道,这是一个黑客…但如果没有别的工作,它应该包裹没有问题。

我认为这是Firefox中一个长期存在的问题,它回到了Mozilla和Netscape。 我敢打赌,你是有问题的显示长URL。 我认为这是一个渲染引擎的问题,而不是你可以用CSS修复的东西,没有一些丑陋的黑客。

有意义改变devise。

这看起来很有希望: http : //hacks.mozilla.org/2009/06/word-wrap/

我正在为我的项目使用Angular,并设法用一个简单的filter来解决这个问题:

模板:

 <td>{{string | wordBreak}}</td> 

过滤:

 app.filter('wordBreak', function() { return function(string) { return string.replace(/(.{1})/g, '$1​'); } }) 

你看不到它,但$1有一个不可见的空间(谢谢@kingjeffrey提示),这使得表格单元格的分词。