此文字的行为与Google Chrome(以及其他现代浏览器)完全一样:
<div style="border: 1px solid black; width:100%; word-wrap: break-word;">
<p>
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
</p>
</div>
当浏览器足够宽时,+和b +在同一行。
aaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
在缩小浏览器范围时,将+和b +放在不同的行上。
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
当b +不再适合时,它会断开并放在两行上(总共三行)。
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbb
这一切都很棒。
但在我的情况下,这不是div
而是table
,如下所示:
<table style="border:1px solid black; width:100%; word-wrap:break-word;">
<tr>
<td>
<p>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
</p>
</td>
</tr>
</table>
在这种情况下,#1和#2会发生,但不会发生#3。也就是说,表格在步骤2之后停止缩小,并且不会发生步骤3。破解词似乎没有过滤掉。
有谁知道make#3是如何发生的?该解决方案只需要在Chrome中运行,但它也适用于其他更好的浏览器。
P.S。 “不要使用表格”没有帮助。
答案 0 :(得分:130)
table-layout: fixed
将强制细胞适合表格(而不是相反),例如:
<table style="border: 1px solid black; width: 100%; word-wrap:break-word;
table-layout: fixed;">
<tr>
<td>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
</td>
</tr>
</table>
答案 1 :(得分:21)
你可以试试这个:
td p {word-break:break-all;}
但是,除非您添加<br>
标记,否则会在空间足够时显示如下:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
因此,如果可能的话,我会建议在有新行的地方添加<br>
标记。
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
此外,如果这不能解决您的问题,则会有类似的帖子here。