固定列表定位



我正试图在第一列固定的表中添加垂直滚动。

我有一个水平滚动的表,我希望第一列保持不变。但当表的高度超过div的高度时,第一列就会位于外部。主要是因为它有固定的位置。我没有办法解决这个问题。

我的html是,

   <div class="table-wrapper">
<table id="consumption-data" class="data">
    <thead class="header">
        <tr>
            <th>Month</th>
            <th>Item 1</th>
            <th>Item 2</th>
            <th>Item 3</th>
            <th>Item 4</th>
        </tr>
    </thead>
    <tbody class="results">
        <tr>
            <th>Jan</th>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
        </tr>
        <tr>
            <th>Feb</th>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
        </tr>
        <tr>
            <th>Mar</th>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
        </tr>
        <tr>
            <th>Apr</th>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>  
        </tr>
        <tr>    
            <th>May</th>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
        </tr>
        <tr>
            <th>Jun</th>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
            <td>3163</td>
        </tr>
        <tr>
            <th>...</th>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
        </tr>
    </tbody>
</table>

和css作为,

  .table-wrapper { 
overflow-x:scroll;
overflow-y:visible;
width:250px;
margin-left: 120px;
height:200px;
  }

td, th {
padding: 5px 20px;
width: 100px;
}
 th:first-child {
position: fixed;
left: 5px
 }

演示

我已经更新了答案,正如下面我的答案评论中所指出的。

您需要通过使用DIV而不是表来更新HTML结构(可能不是理想的解决方案)。使用当前的HTML结构是无法实现这一点的,除非您能够容忍垂直滚动冻结第一列,如图所示。

如果你仔细考虑,你试图让两个子元素<th><td>能够垂直滚动,但一个子元素在水平滚动时保持静止。CCD_ 3和CCD_。

添加此css代码

tr{
     margin-left: 120px;
}

并删除

th:first-child {
    position: fixed;
    left: 5px
}

使用Sticky Table jQuery插件。您可以使用它来创建固定列,而无需更改表结构。

最新更新