为表'tbody'制作水平滚动

时间:2013-02-14 16:37:49

标签: javascript jquery html css tablesorter

我有一个传统的桌子,包括thead,tbody等。这对tablesorter.js来说是必要的。

我有什么:

<div id="tableWrapper">
  <div id="tableContainer" class="tableContainer">
    <table id="scrollTable">

      <thead class="fixedHeader">
        <tr class="tableHeader even">
          <th class="header">
            <span>Name</span>
          </th>
          <th class="header">
            <span>Address</span>
          </th>
        </tr>
      </thead>
      <tbody class="scrollContent">
        <tr class="tableRow">
          <td class="td_0">
            <span>
              Doe, John
            </span>
          </td>
          <td class="td_0">
            <span>
              Memory Lane
            </span>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

CSS:

#tableWrapper tbody{
  color:#00467f;
  font-weight:500;
  position:absolute;
  overflow-y: auto;
  overflow-x: scroll;
  height:300px;
  width:300px;
}

#tableWrapper #tableContainer{
  width: 1100px;
  overflow: hidden;
}

#tableWrapper tbody>tr{
  width: 1200px;
}

我保持表头部分垂直固定,因此tbody位置绝对是将表头保持在tbody垂直滚动事件之外。我尝试将tbody&gt; tr的宽度设置为高于tbody的值,但没有运气。

tbody&gt; tr宽度会自动缩小到tbody的大小。

问题:我无法在不水平滚动整个表格的情况下滚动tbody水平滚动条(因此垂直滚动条会消失在溢出中:隐藏)。我想只是水平滚动tbody,然后我有一些jquery将该事件绑定到标头。所以没有问题。只是试图让水平滚动条滚动到tbody。

我能够获得tbody overflow-y:auto工作,但不能溢出-x:auto。有没有办法让tr更宽,让tbody向左和向右滚动?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

啊我明白了。

我添加了float:left;并显示:阻止到tbody&gt; tr。

CSS:

 #tableWrapper tbody>tr{
  display:block;
  float:left;
   width: 1200px; /*desired width*/ 
  }