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为
然后使用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提示),这使得表格单元格的分词。