我怎样才能限制表列的宽度?

我的表中的一列可以包含一个没有空格的长文本。 我怎样才能限制它的宽度,比如150px? 我不希望它总是150px(如果它是空的,它应该是狭窄的),但如果有一个长文本,我希望它被限制在150px和文本被包装。

这里是一个testing的例子: http : //jsfiddle.net/Kh378/ (让我们来限制第三列)。

先谢谢你。

更新:
设置这个样式:

word-wrap: break-word; max-width: 150px; 

在IE8中不起作用(在不同的计算机上testing过),我想它在任何版本的IE中都不起作用。

更新

在桌子的tdth标签我补充说:

 word-wrap: break-word; max-width: 150px; 

不是每个浏览器都完全兼容,而是一个开始。

在另一个StackOverflow线程中回答了这个问题。 总之,你应该使用宽度,而不是最大宽度。

你需要使用宽度。

 <table> <thead> <tr> <th>Name</th> <th>Age</th> <th style="width: 20px;"></th> </tr> </thead> <tbody> </tbody> </table> 

但只是在<thead>部分。

您应该可以使用以下方式设置列的样式:

 max-width: 150px; word-wrap: break-word; 

请注意,IE 5.5+,Firefox 3.5+和WebKit浏览器(Chrome和Safari)均支持word-wrap

有一个选项来模拟最大宽度:

 simulateMaxWidth: function() { this.$el.find('th').css('width', ''); // clear all the width values for every header cell this.$el.find('th').each(function(ind, th) { var el = $(th); var maxWidth = el.attr('max-width'); if (maxWidth && el.width() > maxWidth) { el.css('width', maxWidth + 'px'); } }); } 

这个函数可以在$(window).on('resize',…)上多次调用

 this.$el 

代表父母,在我的情况下我有牵线木偶

对于那些应该有最大宽度的元素,应该有一个最大宽度属性,如:

 <th max-width="120"> 

1)根据需要在<th>为每列指定宽度。

2)在<table> <tr>中为每个<td>添加单词换行。

 word-wrap: break-word; 

在Chrome中进行了一些实验之后,我得出了以下结论:

  • 如果你的表有一个<th>应该有一个“宽度”或“最大宽度”设置
  • <td>必须设置“max-width”和“word-wrap:break-word”。

如果在<th>使用“宽度”,则将使用其值。 如果在<th>使用“max-width”,则会使用<td>的“max-width”值。

所以这个function相当复杂。 而且我甚至没有学习没有标题或没有长string的表格需要一个“诀窍”。

这很容易

你可以添加像这样的属性

最大宽度

最大高度

可以将它们设置为html作为属性,也可以将CSS设置为样式