代码之家  ›  专栏  ›  技术社区  ›  oneMoreDeveloper

固定标题表没有对齐的<thead>和<tbody>列[重复]

  •  0
  • oneMoreDeveloper  · 技术社区  · 5 年前

    我有一个有三个表的页面,但是一个表有很多数据,所以我决定为这个表设置一个固定的标题。固定的标题可以工作,但是thead和tbody列没有对齐,换句话说,标题列的宽度与tbody中的列不匹配。任何帮助都将不胜感激。

    table {
      border-collapse: collapse;
      border-width: 1px 1px 1px 1px;
      border-style: solid;
    }
    
    table td {
      border-width: 1px 1px 1px 1px;
      border-style: solid;
      padding: 4px;
      text-align: left;
    }
    
    table th {
      border-width: 1px 1px 1px 1px;
      background-color: lightgray;
      border-style: solid;
      padding: 4px;
    }
    
    .fixed_header {
      border-collapse: collapse;
      border-width: 1px 1px 1px 1px;
      border-style: solid;
    }
    
    .fixed_header tbody {
      display: block;
      overflow: auto;
      height: 500px;
    }
    
    .fixed_header thead tr {
      display: block;
    }
    <table class="fixed_header">
      <thead>
        <tr>
          <th>COLUMN 1</th>
          <th>COLUMN 2</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td> data for column 1</td>
          <td> data for column 2</td>
        </tr>
      </tbody>
    </table>

    附加它现在的样子。我不想为每个元素添加自定义宽度,因为我的实际表有很多列。 This is how it currently looks (not the actual data)

    1 回复  |  直到 5 年前
        1
  •  0
  •   John - Not A Number    5 年前

    您明确地告诉它在CSS中使用“display:block;”,因此告诉浏览器不要像表一样布局。

    我认为您将需要使用更复杂的东西,比如jquerydatatables FixedHeader,它可以计算出所有东西需要的宽度,从而正确地处理它。