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

时间:2020-03-05 18:51:29  来源:igfitidea点击:

概括

确保表格单元不能小于某个最小宽度的最佳方法是什么。

例子

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

浏览器兼容性

我可能想找到一个可行的解决方案

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

以优先顺序。

解决方案

回答

该CSS应该足够:

td { min-width: 100px; }

但是,并非所有浏览器都始终正确遵循它(min-width属性)(例如,IE6非常不喜欢它)。

编辑:就IE6(及之前版本)解决方案而言,据我所知,没有一种在所有情况下都能可靠运行的解决方案。使用nowrap HTML属性并不能真正达到预期的效果,因为这只能防止单元格中的换行,而不是指定最小宽度。

但是,如果将nowrap与常规的单元格width属性结合使用(例如,使用width:100px),则100px的作用类似于最小宽度,并且该单元格仍将随着文本扩展(由于nowrap)。这是一个不太理想的解决方案,无法使用CSS完全应用,因此,如果我们希望将许多表应用到该表上,将很难实现。 (当然,如果我们想在单元格中使用动态换行符,那么整个替代解决方案都会失败)。

回答

那css属性呢

min-width: 100px

但是,如果没有记错的话,它实际上在IE6中是行不通的

如果我们不想以CSS方式进行操作,我想我们可以添加此属性

nowrap="nowrap"

在表格数据标签中

回答

另一招是旧的1x1透明像素技巧。插入一个1x1透明gif图像,并将其宽度在图像标签中设置为所需的宽度。这将迫使像元至少与图像一样宽。

回答

IE6将宽度处理为最小宽度:

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

如果我们希望IE6像普通浏览器一样处理宽度,请给它一个溢出: (这里不是这种情况)

回答

我在以下方面取得了一些成功:

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

根据Vatos的回应和此处的最低身高文章结合而成:http://www.dustindiaz.com/min-height-fast-hack/