如何在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; (不是这里的情况)