2011-11-29 105 views
8

我下表在我的HTML:如何使列的宽度适合HTML表格中的内容?

<div style="max-width:700px;"> 
    <table border="1"> 
     <tr><td colSpan="2">this is a loooooooooooooooong text</td></tr> 
     <tr><td width="1px">a:</td><td >b</td></tr> 
     <tr><td width="1px">c:</td><td >d</td></tr> 
    </table> 
<div> 

我想第二排和第三排只适合内容长度在第一列的宽度(这就是为什么我把width="1px"那里)。同时,我希望表宽度恰好适合表中最长内容的长度(这是第一行),而不是跨越其边界div的最大宽度。

它适用于Firefox,如下所示。

Firefox display

然而,在IE 9它不象预期的那样工作所示。

IE 9 display

我试着用width="1%"更换width="1px"。但是,表格宽度将跨越父div的最大宽度。

有谁知道如何解决它在IE浏览器?

+0

它在IE9中为我工作。 – Will

+0

可能的重复[是缩小到适合表格单元格可能?](http://stackoverflow.com/questions/4582631/are-shrink-to-fit-table-cells-possible) –

回答

13

我刚刚在我的IE9中进行了测试,并将宽度设置为1px。但是它显示为您在兼容模式以上提供的以上。你有没有声明你的文档类型和所有其他有趣的东西?

这可能是因为您使用的是旧方法来显示表格。您可以尝试使用CSS中的边框等对表格进行造型 - 例如:

table, td, tr, th{ 
    border:1px solid #f0f; 
} 

.onepx{ 
    width:1px; 
} 



<div style="max-width:700px;"> 
    <table> 
    <tr><td colspan="2">this is a loooooooooooooooong text</td></tr> 
    <tr><td class="onepx">a:</td><td>b</td></tr> 
    <tr><td class="onepx">c:</td><td>d</td></tr> 
    </table> 
<div> 

等等 - 我相信您会明白。这可能会阻止它在兼容性视图中自动显示(如果是问题)。

最后,因为IE9太愚蠢了,您将不得不关闭兼容性视图(如果它在页面上启用),因为域中的所有页面都将在兼容性视图中查看。

+0

谢谢。添加doctype声明解决了IE中的问题。 – Bob

+0

我现在有一个新的情况。我无法关闭IE中的兼容性视图,因为必须在兼容性视图中查看页面的其他部分。那么,有没有一种方法可以在不关闭IE9中的兼容性视图的情况下完成Firefox中的样式? – Bob

+0

是的。确保你的代码都有很好的验证和结构。确保您的网页在http://validator.w3.org/上没有错误 – dan

2

您提到您已尝试将其设置为1%,您是否将其他设置为99%?

<tr><td width="1%">a:</td><td width="99%">b</td></tr> 
<tr><td width="1%">c:</td><td width="99%">d</td></tr> 
+0

这将无法正常工作,因为将其设置为700像素的99%。 – dan