2015-07-20 103 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