HTML TD换行文字

121 html css html-table word-wrap

我想包装一些添加到<td>元素的文本.我试过了style="word-wrap: break-word;" width="15%".但它并没有包装文本.是否必须给它100%的宽度?我有其他控件要显示,所以只有15%的宽度可用.

Jit*_*wat 209

包装TD文本

首先设置表格样式

table{
    table-layout: fixed;
}
Run Code Online (Sandbox Code Playgroud)

然后设置TD Style

td{
    word-wrap:break-word
}
Run Code Online (Sandbox Code Playgroud)

  • 有意思......在Chrome中,我不得不在td样式中使用`white-space:normal`来使包装工作(而不是`word-wrap:break-word`) (13认同)
  • 我想它没有被加入,因为它在chrome中不起作用...... :-(webkit的任何解决方案? (5认同)
  • 在Chrome中完美地为我工作. (4认同)
  • 我可以确认我对吉姆的回答有同样的经历。出于某种原因,如果没有 `white-space:normal;`,Chrome 不会响应 (4认同)
  • 对于 Firefox 来说也是如此。空白:正常是我将文本换行到 TD 中所需要的。 (2认同)

Als*_*nde 47

HTML表格支持"table-layout:fixed"css样式,可防止用户代理使列宽适应其内容.您可能想要使用它.

  • 我尝试过这个解决方案,但它似乎不适用于Chrome.我有一个动态填充的表,其超链接超过单元格宽度的两倍.'table-layout:fixed'解决了表拉伸的问题,但没有包装文本; 相反,它继续延伸页面的右侧.我错过了什么吗? (7认同)

scu*_*ffe 28

我相信你已经遇到了表格中的22个.表格非常适合在表格结构中包装内容,并且它们可以很好地"拉伸"以满足其所包含内容的需求.

默认情况下,表格单元格将拉伸以适合内容...因此您的文本只会使其更宽.

有一些解决方案.

1.)您可以尝试在TD上设置最大宽度.

<td style="max-width:150px;">
Run Code Online (Sandbox Code Playgroud)

2.)您可以尝试将文本放在包装元素(例如跨度)中并对其设置约束.

<td><span style="max-width:150px;">Hello World...</span></td>
Run Code Online (Sandbox Code Playgroud)

请注意,旧版本的IE不支持min/max-width.

由于IE本身不支持max-width,因此如果你想强制它,你需要添加一个hack.有几种方法可以添加黑客攻击,这只是一种方法.

在页面加载时,仅对于IE6,获取表格的渲染宽度(以像素为单位)然后获得15%的宽度并将其作为宽度应用于该列中的第一个TD(或者如果您有标题则为TH),以像素为单位.


eww*_*ink 15

使用word-break它可以在不定型使用table,以table-layout: fixed

table {
  width: 140px;
  border: 1px solid #bbb
}

.tdbreak {
  word-break: break-all
}
Run Code Online (Sandbox Code Playgroud)
<p>without word-break</p>
<table>
  <tr>
    <td>LOOOOOOOOOOOOOOOOOOOOOOOOOOOOGGG</td>
  </tr>
</table>

<p>with word-break</p>
<table>
  <tr>
    <td class="tdbreak">LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOGGG</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


Cos*_*tin 11

table-layout:fixed将解决扩展单元格问题,但将创建一个新问题.IE默认情况下会隐藏溢出,但Mozilla会将其渲染到框外.

另一个解决方案是使用: overflow:hidden;width:?px

<table style="table-layout:fixed; width:100px">
 <tr>
   <td style="overflow:hidden; width:50px;">fearofthedarkihaveaconstantfearofadark</td>
   <td>
     test
   </td>
 </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


小智 10

.tbl {
    table-layout:fixed;
    border-collapse: collapse;
    background: #fff;
 }

.tbl td {
    text-overflow:ellipsis;
    overflow:hidden;
    white-space:nowrap;
}
Run Code Online (Sandbox Code Playgroud)

致于http://www.blakems.com/archives/000077.html


Mik*_*keL 10

我有一些td

white-space: pre;
Run Code Online (Sandbox Code Playgroud)

这为我解决了这个问题:

white-space: pre-wrap;
Run Code Online (Sandbox Code Playgroud)


All*_*ітy 6

这对我有一些css框架(材料设计精简版[MDL]).

table {
  table-layout: fixed;
  white-space: normal!important;
}

td {
  word-wrap: break-word;
}
Run Code Online (Sandbox Code Playgroud)


Bet*_*ock 5

这非常有效:

<td><div style = "width:80px; word-wrap: break-word"> your text </div></td> 
Run Code Online (Sandbox Code Playgroud)

<div您可以为所有的'使用相同的宽度,或者调整每种情况下的宽度以在您喜欢的任何位置中断文本。

这样你就不必浪费时间使用固定的表格宽度或复杂的 CSS。

  • 您可能打算改用 CSS,但现代 HTML 中通常会避免内联样式,特别是当您为每个复制的 div 一遍又一遍地重复相同的样式时。 (2认同)