【问题标题】:How to align width of a table header column and the table body column?如何对齐表头列和表体列的宽度?
【发布时间】:2019-11-11 23:47:28
【问题描述】:

我正在尝试在HTML 中创建具有以下要求的表:

  • 应该可以滚动(垂直和水平)
  • 它应该有固定的标题列
  • 它不应该有自动换行
  • 所有列的宽度都应该是自适应的(与内容的左侧对齐)
  • 如果表格宽度小于 100%,则应将最后一列向右拉伸。
  • 标题列的宽度应与数据列的宽度相同

根据这个要求,我已经创建了表格,除了最后一个,我还做了前 5 个要求。

我的例子:

.TableViewer table
{
   width:           100%;
   table-layout:    fixed;
   border-collapse: collapse;
}
.TableViewer table tbody
{
   display:  block;
   width:    100%;
   overflow: auto;
   height:   400px;
}
.TableViewer table thead tr
{
   display: block;
}
.TableViewer table thead
{
   background: rgb(191, 191, 191);
}
.TableViewer table th
{
   padding:     0 5px;
   text-align:  center;
   font-family: monospace;
   white-space: nowrap;
   border:      1px solid rgb(153, 153, 153);
}
.TableViewer table td
{
   padding:     0 5px;
   text-align:  left;
   font-family: monospace;
   white-space: nowrap;
   border:      1px solid rgb(153, 153, 153);
}
.TableViewer table td:last-child {
    width: 100%;
}
<div class="TableViewer">
   <table>
      <thead>
         <tr><th>index</th><th>time</th><th>data</th></tr>
      </thead>
      <tbody>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
      </tbody>
   </table>
</div>

总结:如何根据tbody列宽拉伸thead列宽? (在提供的解决方案边界内)

提前致谢!

【问题讨论】:

  • 嘿..你问这个问题已经一年了,你有没有机会解决这个问题,你可以分享一下吗?

标签: html css html-table


【解决方案1】:

您需要移除显示块。

.TableViewer table
{
   width:           100%;
   table-layout:    fixed;
   border-collapse: collapse;
}
.TableViewer table tbody
{
   width:    100%;
   overflow: auto;
   height:   400px;
}
.TableViewer table thead
{
   background: rgb(191, 191, 191);
}
.TableViewer table th
{
   padding:     0 5px;
   text-align:  center;
   font-family: monospace;
   white-space: nowrap;
   border:      1px solid rgb(153, 153, 153);
}
.TableViewer table td
{
   padding:     0 5px;
   text-align:  left;
   font-family: monospace;
   white-space: nowrap;
   border:      1px solid rgb(153, 153, 153);
}
.TableViewer table td:last-child {
    width: 100%;
}
<div class="TableViewer">
   <table>
      <thead>
         <tr><th>index</th><th>time</th><th>data</th></tr>
      </thead>
      <tbody>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
         <tr><td>nnnnnn</td><td>hh:mm:ss dd/mm/yyyy </td><td>[some data]</td></tr>
      </tbody>
   </table>
</div>

【讨论】:

  • 嗨,如果我删除display: block;,所有列的宽度都会被拉伸。 要求: 1、所有列的宽度应为自适应(与内容左侧对齐) 2、如果表格宽度小于100%,则最后一列应向右拉伸。
猜你喜欢
  • 1970-01-01
  • 2016-01-08
  • 2020-12-25
  • 2022-08-09
  • 2016-06-07
  • 2021-12-04
  • 2020-12-09
相关资源
最近更新 更多