将表格列挤压到最小可能宽度

时间:2012-08-31 09:01:36

标签: css internet-explorer cross-browser css-tables

在我的网站中,我有很多<table> s,其中有一个特定的列,我们希望将其压缩到最小可能的空间(没有包含文本)。其他兄弟单元格自动共享剩下的空间。

我正在使用以下技巧,它适用于除IE7-之外的所有浏览器。 (此时我实际上只关心IE7)

table {width:100%;}
table td.min-col {white-space:nowrap; width:1px; }

jsFiddle链接:http://jsfiddle.net/vm8gc/23/

如果你在IE7中尝试这个,你会发现它的行为不同(不是预期的行为)。 - 见下面的屏幕截图。

有人能想到修复IE7来实现这个目标吗?


附件:

所有其他浏览器:

enter image description here

IE7:

enter image description here

1 个答案:

答案 0 :(得分:4)

CSS 2版本

出于某种原因,Internet Explorer似乎忽略了TD上的white-space。解决问题的最佳方法是在TD内部使用跨度。

<td><span style="white-space: nowrap;">This should not wrap</span></td>

像往常一样,IE做自己的事情;)

有关white-space支持的信息,请参阅此处:

http://www.quirksmode.org/css/whitespace.html

PRE版本

对旧浏览器提供更好支持的替代方案是执行以下操作:

<td><pre>This will not wrap</pre></td>

然后将你的pre元素设置为与普通文本相同的样式,或者让它从它的父元素继承样式(继承可能只有较少的支持,只指定样式)

td pre { font-family: inherit; font-size: inherit; color: inherit; ... }