2010-06-04 77 views
1

2005年,Stu Nichols發佈了this entry關於在表格中滾動行的固定標題。可滾動表格

這個任務是否有更新的解決方案,或者是Stu在2005年寫的還是最新的?

回答

1

這是當前存在的AFAIK。根據您需要支持的瀏覽器,您可以使用CSS將overflow: scroll附加到tbody元素,但它不是正式在CSS規範中,只能半可靠地工作。 Firefox似乎理解它,我相信Chrome也會如此,但IE卻不予理睬。

1

第二種方法有點像JQGrid處理其可滾動表格。看看他們的演示here。也許不是重新創建輪子,而是想使用他們的TableToGrid方法。這將需要一個html表格,並將其轉換爲格式化網格。

1

如果你使用jQuery,有一個很好的插件可以做到這一點。你可以找到它here

1

我不瞭解你,但我需要可以處理動態寬度(和高度)的表格。 Firefox(< = 3.6)能夠很好地處理這個問題,並且沒有一個建議的框架似乎以一種清晰的方式處理這個問題。

https://bugzilla.mozilla.org/show_bug.cgi?id=552080

隨意對這個問題進行投票,並有Firefox的人重新思考自己的descition:太糟糕了火狐3.7,因爲他們把它叫做一個bug被移除這項功能。

1

我有一個很好的解決方案! 試試這個,看看你是否能理解...... 這是所有關於CSS顯示...

<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Ex Scrollable Table</title> 
     <style type="text/css"> 

      .divScroll 
      { 
       display:block; 
       overflow-x: hidden; 
       overflow-y: scroll; 
       -ms-overflow-x: hidden; 
       -ms-overflow-y: scroll; 
       height: 70px; 
      }    

      .Header 
      { 
       display:table-header-group; 
      } 


      .HeaderCell 
      { 
       text-align: left; 
       display: table-cell; 
      } 

      .FooterCell 
      { 
       display: table-cell; 
       text-align: left; 
      } 

      .Row 
      { 
       display:table-row;     
      } 


      .Cell 
      { 
       display: table-cell; 
      } 

      .Footer 
      { 
       display: table-footer-group; 
      } 

     </style> 

    </head> 
    <body> 
     <table>    
      <thead> 
       <tr> 
        <th class="Header"> 
         <div class="Row"> 
          <div class="HeaderCell" style="width:140px;">Column1</div> 
          <div class="HeaderCell" style="width:90px;">Column2 </div> 
          <div class="HeaderCell" style="width:190px;">Column3</div> 
          <div class="HeaderCell" style="width:100px;">Column4</div> 
         </div> 
        </th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr> 
        <td class="divScroll"> 

         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 


         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 


         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 

         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 

         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 

         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 

         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 

         <div class="Row"> 
          <div class="Cell" style="width:140px;">c1</div> 
          <div class="Cell" style="width:90px;">c2</div> 
          <div class="Cell" style="width:190px;">c3</div> 
          <div class="Cell" style="width:100px;">c4</div> 
         </div> 


        </td> 

       </tr>     
      </tbody> 
      <tfoot> 
       <tr> 
        <th class="Footer"> 
         <div class="Row"> 
          <div class="FooterCell" style="width:140px;">A</div> 
          <div class="FooterCell" style="width:90px;"> B</div> 
          <div class="FooterCell" style="width:190px;">C</div> 
          <div class="FooterCell" style="width:100px;">D</div> 
         </div> 
        </th>      
       </tr> 
      </tfoot>  
     </table>   



    </body> 
</html> 
+0

[這裏有一個小提琴(http://jsfiddle.net/PhillipSenn/ztTmv/)。感謝Carlos! – 2014-02-12 15:16:09