如何在HTML或CSS中指定表格单元格的绝对最小宽度

概要

确保表格单元格的最佳方式不能小于某个最小宽度。

我想确保表中的所有单元格的宽度至less为100px宽的表容器。 如果有更多的可用空间,表格单元格应该填充该空间。

浏览器兼容性

我可能我想find一个解决scheme的工作

  • IE 6-8
  • FF 2-3
  • 苹果浏览器

按照喜好。

这个CSS应该足够了:

td { min-width: 100px; } 

但是,所有浏览器并不总是正确地遵守(最小宽度属性)(例如,IE6不喜欢它)。

编辑:至于IE6(和之前)的解决scheme,没有一个可以在任何情况下可靠地工作,据我所知。 使用nowrap HTML属性并不能真正达到预期的效果,因为这只是防止单元格中的换行符,而不是指定最小宽度。

但是,如果nowrap与常规单元格宽度属性(如使用width:100px)结合使用,则100px将最小宽度一样工作,并且单元格仍然会随文本一起展开(由于nowrap)。 这是一个不太理想的解决scheme,使用CSS无法完全应用,因此,如果您希望应用多个表,那么执行起来会非常繁琐。 (当然,如果你想在你的单元格中有dynamic的换行符,整个替代解决scheme就会崩溃)。

另一个黑客是旧的1×1透明像素技巧。 插入一个1×1的透明GIF图像,并将其宽度设置为图像标签的宽度。 这将迫使细胞至less与图像一样宽。

我知道这是一个老问题,但我想我会分享一些没有提到的东西(虽然在概念上很简单..),你可以把一个<div>放在表内(在<td>或者其他),并将<div>设置为min-width 。 表格将停在<div>的宽度处。 只是以为我会扔在那里,以防有人在谷歌上遇到这种情况。 另外,我不太确定在I.E6中如何处理最小宽度。 但是这已经在另一个答案中被覆盖了。

我取得了一些成功:

  min-width: 193px; width:auto !important; _width: 193px; /* IE6 hack */ 

基于Vatos的回应和一个最小高度的文章在这里的组合: http : //www.dustindiaz.com/min-height-fast-hack/

这个CSS属性呢?

 min-width: 100px 

但是如果没有错误的话,IE6并没有真正的工作

如果你不想用css的方式做,我想你可以添加这个属性

 nowrap="nowrap" 

在你的表格数据标签中

这是设置最小宽度和/或最小高度的跨浏览器方式:

 { width (or height): auto !important; width (or height): 200px; min-width (or min-height): 200px; } 

IE 6不了解!重要
IE 6看到宽度/高度:200px(覆盖自动)

其他浏览器了解最小和最重要的

我不是100%熟悉TD元素宽度的行为,但是这一切都很好地工作,例如DIV标签

BTW:

基于Vatos的回应和一个最小高度的文章在这里的组合: http : //www.dustindiaz.com/min-height-fast-hack/

这是不行的,因为前两行的顺序,他们需要在正确的顺序(想想上面);)

IE6处理宽度为最小宽度:

 td { min-width: 100px; _width: 100px;/* IE6 hack */ } 

如果你想要IE6像普通浏览器一样处理宽度,可以给它一个溢出:visible; (不是这里的情况)