2015-07-20 39 views
1

我知道有很多这些问题已经回答,但不符合我的要求。我有一个未知高度和宽度的桌子,我需要,如果桌子太高,以至于需要滚动桌子,桌子的标题保持不变并按照滚动。我见过的所有解决方案都需要固定的桌面高度。我还希望滚动功能仍然可见时不可见。这可以完成,还是我需要固定的高度?带固定标题和动态高度的表格

我的CSS至今让我来滚动垂直和水平方向(我只需要垂直滚动),但有固定的高度和可见的滚动条:

table.sol-compare-table { 
    box-sizing: border-box; 
    overflow: hidden; 
    display: table; 
    width: 100%; 
} 
table.sol-compare-table thead, table.sol-compare-table tbody { 
    float: left; 
    width: 100%; 
} 
table.sol-compare-table tbody { 
    overflow: auto; 
    height: 150px; 
    /*overflow-x: hidden;*/ 
} 
table.sol-compare-table tr { 
    width: 100%; 
    display: table; 
    text-align: left; 
} 

这里是我的HTML:

<table class="table sol-compare-table"> 
<thead> 
    <tr> 
     <th> 
      <div> 
       <a class="sol-pdf-generator hover-gray-icon sol-share-icon" target="_blank" ng-href="#"> 
        <i class="fa fa-file-pdf-o"></i> 
        Ladda ner som PDF 
       </a> 

       <a class="sol-share-facebook hover-gray-icon sol-share-icon" onclick="#"> 
        <img src="#" alt="facebook"> 
       </a> 

       <a class="sol-share-twitter hover-gray-icon sol-share-icon" onclick="#"> 
        <img src="#" alt="twitter"><!--<i class="fa fa-twitter"></i>--> 
       </a> 

       <a class="sol-share-mail hover-gray-icon sol-share-icon" onclick="#"> 
        <i class="glyphicon glyphicon-envelope"></i> 
       </a> 
      </div> 
       <h2 class="sol-compare-heading">Allmän Information<h2> 
     </th> 

     <th ng-repeat="unit in units" class="sol-compare-heading"> 
      <div> 
       <a href="#/unitDetail/{{unit.Id}}"> 
        <img class="detail-main-image" ng-if="getImageOfUnit(unit).Value.Id" ng-src="#"></img> 
       </a> 
      </div> 
       <a href="#"></a> 
     </th> 
      </tr> 
     </thead> 
     <tbody>    
      <tr ng-repeat="#"> 
       <td>Name</td> 
       <td ng-repeat="unit in units"> 
         <span ng-if="unitAttr.Value != null"> 
          <span print-attribute="#"></span> 
         </span> 
         <span ng-repeat="#" ng-if="unitAttr.Values"> 
          # 
         </span> 
         <span ng-if="# == null && unitAttr.Values == null"> 
          - 
         </span> 
       </td> 
      </tr> 
     </tbody> 
</table> 

EDIT


我试图与使用位置是:固定在表头和第几乎完成了我之后的工作,只是它应该在任何时候都固定在页面的顶部(当向下滚动它应该跟随滚动,但浏览器窗口中的位置相同)。这JSfiddle是最简单的方式来显示我在atm atm我猜; http://jsfiddle.net/rwqkokgy/5/

回答

1

对于垂直滚动条你必须使用overflow-y:scroll; overflow-x:hidden;

您可以使用overflow-y:auto;和垂直滚动条会显示/隐藏依赖的表格内容。

有一个例子,但有两个表。第一个是表头内容,第二个是表格内容。也许你可以通过这种方式实现。

jsfiddle example

在这个例子中是一个按钮,太。用于模拟带滚动条和不带滚动条,具体取决于表格内容。

该按钮和js函数调用chVl您可以删除。如果您调整浏览器的大小,则会使用名为checkW的第一个函数。

我希望这样可以帮助你。

编辑:

如果你想垂直滚动条所有的时间,然后再做下一个(在所提供的jsfiddle为例):

  1. body
  2. 删除onloadonresize删除完整javascript
  3. #container(css)代替overflow-yautoscroll

关于height#container,你可以通过你的需要进行更改。

而且,当然,删除button,就像我上面写的那样。他的目的只是为了模拟,没有别的。

+0

我建议使用'overflow-y:scroll;'显示滚动条,即使窗口的高度足以防止窗口大小改变并添加滚动条时内容的“跳跃”。 – Wavemaster

+0

@Wavemaster我同意。我在回答中写道,用户可以使用他想要的。在大多数情况下,我喜欢你的建议。这个jsfiddle例子是我在一周前为其他用户请求写的。 – nelek

相关问题