我怎样才能限制表列的宽度?
我的表中的一列可以包含一个没有空格的长文本。 我怎样才能限制它的宽度,比如150px? 我不希望它总是150px(如果它是空的,它应该是狭窄的),但如果有一个长文本,我希望它被限制在150px和文本被包装。
这里是一个testing的例子: http : //jsfiddle.net/Kh378/ (让我们来限制第三列)。
先谢谢你。
更新:
设置这个样式:
word-wrap: break-word; max-width: 150px;
在IE8中不起作用(在不同的计算机上testing过),我想它在任何版本的IE中都不起作用。
更新
在桌子的td
和th
标签我补充说:
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设置为样式