在表格中使用“自动换行:break-word”

时间:2011-05-04 20:33:40

标签: css google-chrome html-table word-wrap

  

可能重复:
  Word-wrap in a html table

此文字的行为与Google Chrome(以及其他现代浏览器)完全一样:

<div style="border: 1px solid black; width:100%; word-wrap: break-word;">
  <p>
    aaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  </p>
</div>
  1. 当浏览器足够宽时,+和b +在同一行。

    aaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
    
  2. 在缩小浏览器范围时,将+和b +放在不同的行上。

    aaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
    
  3. 当b +不再适合时,它会断开并放在两行上(总共三行)。

    aaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbbbb
    bbbbbbbb
    
  4. 这一切都很棒。

    但在我的情况下,这不是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。 “不要使用表格”没有帮助。

2 个答案:

答案 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

http://jsfiddle.net/LLyH3/3/

此外,如果这不能解决您的问题,则会有类似的帖子here