如何限制表格的列宽?


75

我表格中的一列可以包含一个没有空格的长文本。如何将其宽度限制为150px?我不希望它始终为150px(如果为空,则应该很窄),但是如果有长文本,我希望将其限制为150px,并包装文本。

这是一个测试示例:http : //jsfiddle.net/Kh378/(让我们限制第三列)。

先感谢您。

更新:
设置以下样式:

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

不能在IE8(在不同的计算机上经过测试)中工作,并且我想它在任何版本的IE中都不能工作。


由于这个问题已经存在了将近三年,而且目前还没有悬赏,我想知道它是否还需要答案?
Frank Conijn 2014年

另一个StackOverflow线程中回答了该问题。简而言之,您应该只使用width而不是max-width。
米哈伊尔·拉里奥诺夫

1
@Frank Conijn,是的,确实如此!:)
nightcoder

那两年后虽然回复
开发人员

答案不会改变,因此年龄无所谓:)
逆向工程师

Answers:


67

更新

在表格的tdth标签上,我添加了:

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

并非与所有浏览器完全兼容,只是一个开始。


1
不幸的是,它在IE8中不起作用(我想它在任何版本的IE中都不起作用...)。
nightcoder

2
能以百分比的形式完成吗,因为它只对px才有效...
用户

13

您需要改用宽度。

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

但仅在本<thead>节中。


2
如果您没有<thead>专区怎么办?
Timmmm

6

您应该能够使用以下方式设置列样式:

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

请注意,word-wrapIE 5.5 +,Firefox 3.5+和WebKit浏览器(Chrome和Safari)均支持该功能。


在此页面的相似/等效解决方案中,请查看此详细信息,尤其是最大宽度和当前(当前)存在的问题stackoverflow.com/a/24620364/2255628
Destiny Architect

5

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

  • 如果您的表有一个<th>应设置“宽度”或“最大宽度”的
  • 所述<td>的必须设置‘最大宽度’和‘自动换行:断字;’

如果在中使用“宽度”,<th>则将使用其值。如果您在的<th>“最大宽度”值中使用“最大宽度”,<td>则改为使用。

因此,此功能非常复杂。而且我什至没有研究没有标题或没有长字符串的表,而这些长字符串需要一个“断字”。


0

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

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

代表父元素,在我的情况下,我有木偶

对于应该具有max-width的那些元素,应该有一个max-width属性,例如:

<th max-width="120">


0

这很容易

您可以添加像这样的属性

最大宽度

最大高度

可以将它们设置为html中的属性或CSS中的样式

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.