固定行跨度和表格布局时的表格列宽

Posted

技术标签:

【中文标题】固定行跨度和表格布局时的表格列宽【英文标题】: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。 【参考方案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,只有代码的答案经常被标记为“低质量”并被审核(因此,为什么我看到你的答案。)通常,仅代码答案不能提供足够的信息/上下文来真正帮助用户(或未来的网站访问者)。

以上是关于固定行跨度和表格布局时的表格列宽的主要内容,如果未能解决你的问题,请参考以下文章

docx4j导出word文档,有表格,如何固定word表格列宽,

自动表格布局和 colspan

如何在表格布局中应用行跨度?

怎样使word表格的宽度高度固定不变

基础固定列宽的表格及示例演示

table-layout:fixed的作用