【问题标题】:Making html table use 100% of available width使 html 表格使用 100% 的可用宽度
【发布时间】:2011-11-08 22:54:27
【问题描述】:

我有一个奇怪的问题,实际上我很羞于承认。在这里看到整个事情: http://jsfiddle.net/Sorcy/ng2by/1/

我的问题是:第二个(非常小的)表实际上应该拉伸容器的整个宽度。当我用萤火虫看它时(因此右边的蓝色框,它实际上是表格的背景颜色),但行本身只延伸到它们必须容纳的内容。

既然我不想在我的桌子旁边放一个大的蓝色盒子,我该如何让这个东西伸展整个宽度?为 tablerows 设置多少宽度并没有给我带来任何好处,而且由于我事先无法知道我的 table 将有多少列,所以为单元格设置宽度也是不可能的。

到目前为止,我唯一的解决方案是编写一个小的 Javascript 来遍历表格,计算列数并即时设置每个列的宽度,但我当然想要一个更好的纯 CSS 解决方案。

编辑:

根据要求,提供其外观的图片:

Direct link for bigger image

【问题讨论】:

  • 我建议您编辑问题并添加您未能完成的设计位的屏幕截图。
  • @Sourcy - 这是一个相当简单的设计。这些行正是我在更新 #2 中提出的。

标签: html html-table width stretch


【解决方案1】:

我认为主要问题是这样的:

table {
    display: block;
}

如果您更改表格的display 属性,您基本上是在要求浏览器忽略它是一个表格并将其作为常规元素处理,从而导致不可预知的怪癖。

我不知道你想要完成什么,但可能你真的想要这个:

table {
    border-collapse: collapse;
}

此属性使完成某些视觉设计变得更容易。

更新#1:表格最后一行后的黑线可以用这种简单的样式完成:

table {
    /*background-color: #001F66;*/
    border-bottom: 1px solid #001F66;
}

更新#2:要在最后一行的单元格之后得到一条黑线,请替换:

table tr:last-child td { border-bottom: none; }

...用这个:

table tr:last-child td { border-bottom: 1px solid #001F66; }  

【讨论】:

  • +1 用于识别表格样式中奇怪的显示属性。
  • 我使用 display: block 是表格最后一行之后的黑线。如果我不使用 display:block,则 padding-bottom: 1px 永远不会起作用,因此在表格下方永远不会看到背景颜色,因此我没有最后(不间断)行。是的,我知道,但那是你的设计师。
  • 是的,这增加了一条线,但不是我的设计师想要的一条 UNBROKEN 线... :)
  • @Sorcy 然后边框进入各个单元格。
  • 对不起,还是断线。我想我只需要告诉我的设计师,他们应该忘记虚线并使用所有完整的线,这样会更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-25
  • 2013-10-03
  • 2014-05-14
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
相关资源
最近更新 更多