【问题标题】:Css: scroll table with fixed header with multiple tbodyCss:具有多个tbody的固定标题的滚动表
【发布时间】:2014-12-28 10:14:12
【问题描述】:

我需要带有固定标题的滚动表。我找到了这个解决方案How to add a scrollbar to an HTML5 table? 但是,我不能使用它,因为我有多个 tbodies。

我需要多个 tbodies,因为我有行跨度,为了更改行背景颜色,我使用 tbody:hover td{background-color:...;}。换句话说,我在实施此解决方案时需要它们https://stackoverflow.com/a/15465002/2022068

我的问题 - 如何制作带有多个 tbodies 的固定标题的滚动表?

【问题讨论】:

    标签: html css


    【解决方案1】:

    演示 - http://jsfiddle.net/5KJka/928/

    在主table td 内扭曲table 以使滚动不受影响

        table.main {
          display: table;
          width: 100%;
        }
        table.main > thead,
        table.main > tbody {
          float: left;
          width: 100%;
        }
        table.main > tbody {
          overflow: auto;
          height: 150px;
        }
        table tr {
          width: 100%;
          display: table;
          text-align: left;
        }
        table th,
        table td {
          width: 33%;
        }
        table.main table tbody:nth-child(odd) {
          background: #CCC;
        }
        table.main table tbody:hover td[rowspan],
        table.main table tr:hover td {
          background: red;
        }
        table.main table {
          width: 100%;
          border-collapse: collapse;
        }
        table.main table td,
        table.main table th {
          padding: 20px;
          border: 1px solid black;
        }
    <table class="main">
      <thead>
        <tr>
          <th><span class="text">album</span>
    
          </th>
          <th><span class="text">song</span>
    
          </th>
          <th><span class="text">genre</span>
    
          </th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>
            <table>
              <tbody>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
              </tbody>
              <tbody>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
              </tbody>
              <tbody>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
                <tr>
                  <td>test</td>
                  <td>test</td>
                  <td>test</td>
                </tr>
              </tbody>
            </table>
          </td>
        </tr>
      </tbody>
    </table>

    【讨论】:

    • 使用这种方法,您几乎可以删除同一列中标题单元格和表格单元格之间的连接。如果单元格有更多内容,则它可能无法与其自己的标题单元格正确对齐。到目前为止,我还没有找到任何其他解决方案......
    猜你喜欢
    • 1970-01-01
    • 2022-10-20
    • 2016-02-06
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多