【问题标题】:Table column width when having rowspan and table-layout fixe固定行跨度和表格布局时的表格列宽
【发布时间】:2018-01-25 01:42:48
【问题描述】:

我一直在固定我的 html 表格的第二列的宽度。

下面是我的桌子的打印屏幕:

下面是 CSS 代码:

#RevenueMTable tbody, #RevenueMTable thead {
display: block; 
}

#RevenueMTable {
    width: 1115px;
    table-layout: fixed !important;
}

#RevenueMTable tbody td:first-child
{
    width: 138px !important;
}

#RevenueMTable tbody td:not(:first-child)
{  
    width: 72px !important;

}

#RevenueMTable tbody
{
   overflow: auto;
   height: 400px;

}

问题是我的第一列有 4 行的行跨度。因此,例如包含“COST”的单元格是行标签中的第一个 TD 元素,因此也应用了 138px 的宽度,尽管它应该被视为第二列。

我该如何解决这个问题?

我尝试如下应用列定义宽度,但也不起作用:

 $( '<col style="width:138px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"> <col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px"><col style="width:72px">').insertBefore( $("#RevenueMTable thead") )

【问题讨论】:

  • 能否请您也提供 HTML 以便更快地解决问题,如果可能的话,请提供一个突出问题的 jsfiddle。

标签: css html-table width


【解决方案1】:

您已经有关于 TD 元素的类。您可以使用这些直接定位列。我更改了规则的顺序,因此它们将根据具体情况正确覆盖。

#RevenueMTable tbody td
{  
    width: 72px !important;

}

#RevenueMTable tbody td.column0 {
    width: 138px !important;
}

【讨论】:

    【解决方案2】:
      #RevenueMTable tbody td:nth-child(2)
      {  
          width: 72px !important;
      }
    

    【讨论】:

    • 您能否简要解释一下为什么这可以解决 OPs 问题?
    • td:nth-child(2) 表示第二列,如果要指定第三列,则类似于 #RevenueMTable tbody td:nth-child(3) 等等。
    • 请更新你的答案并附上简短的解释 :) 在 SO,只有代码的答案经常被标记为“低质量”并被审核(因此,为什么我看到你的答案。)通常,仅代码答案不能提供足够的信息/上下文来真正帮助用户(或未来的网站访问者)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2011-06-27
    • 2012-08-24
    • 2012-03-26
    • 1970-01-01
    • 2017-01-23
    相关资源
    最近更新 更多