如何左对齐所有表格单元格,但最后一个?

时间:2010-02-19 11:19:17

标签: html html-table

我有一个包含1行和5列的表格。我已将这5列的宽度固定为某些已知值(150px,200px等)。我还为每一个设置了左边距。

我希望表格变宽并占据其父级的整个宽度。所以,我将其宽度设置为 100%。当表格宽于5列的组合宽度和边距时,会导致它们在整个表格中展开,留下间隙。

但是,我希望这5列保留在左侧。

为实现这一目标,我添加了第6列,并将其宽度设置为 auto ,希望它能正确地将前5个向左推,并占用剩余空间。它适用于Firefox和Chrome。但它在IE中不起作用。在IE中,5列仍然在桌子上均匀分布。

我尝试将第6列的宽度设置为 100%而不是auto。但问题是,它正在消除5列的左边距!有点像,100%的列将左边的5列向左推,它们的边缘消失了!

我希望保留前5列的填充,边距和宽度,但是要向左推,但表格应该扩展为与其父级一样宽。

该表的背景图片需要显示超出5列。

有些人可能会建议我将背景移到桌子的父母那里,但我不能 - 接受我的话:D

如何在Firefox,Chrome和IE中使用它?

感谢。

以下是链接:http://test.greedge.com/table/table.php。在FF和IE中试用

1 个答案:

答案 0 :(得分:1)

编辑:解决方案很简单:将 添加到最后一列表格中的一个td。 不会渲染inlying表的表格单元格,因为它不包含任何内容。因此,最后一个单元格也不包含任何内容,不会被渲染,其他单元格必须在它们之间分割可用空间。

我不知道哪个浏览器在这里做正确的事情,所有IE浏览器(包括8个)都没有渲染列,所有其他浏览器都这样做。

旧回答:

根据the CSS 2.1 spec

,列不应该有边距
  

margin-right,margin-left

     

适用于:除了table-caption,table和inline-table之外的表格显示类型的元素以外的所有元素

您需要在单元格内使用填充。

自动列应该在您描述的场景中的任何浏览器中工作(只是不指定任何宽度)。你可以发布一个不起作用的表的在线示例吗?