ฉันเพิ่งมีปัญหาที่คล้ายกันและลงเอยด้วยการแก้ไขโดยใช้โซลูชันที่แตกต่างกัน
อันแรกและที่ง่ายที่สุดคือใช้สองตารางหนึ่งอันสำหรับส่วนหัวและอีกอันสำหรับร่างกาย ใช้งานได้ แต่ส่วนหัวและคอลัมน์ร่างกายไม่ได้จัดแนว และเนื่องจากฉันต้องการใช้ขนาดอัตโนมัติที่มาพร้อมกับตาราง bootstrap twitter ฉันจึงสิ้นสุดการสร้างฟังก์ชั่น Javascript ที่เปลี่ยนส่วนหัวเมื่อ: ร่างกายมีการแสดงผล; ปรับขนาดหน้าต่าง ข้อมูลในคอลัมน์เปลี่ยนแปลง ฯลฯ
นี่คือรหัสบางส่วนที่ฉันใช้:
        <table class="table table-striped table-hover" style="margin-bottom: 0px;">
        <thead>
            <tr>
                <th data-sort="id">Header 1</i></th>
                <th data-sort="guide">Header 2</th>
                <th data-sort="origin">Header 3</th>
                <th data-sort="supplier">Header 4</th>
            </tr>
        </thead>
    </table>
    <div class="bodycontainer scrollable">
        <table class="table table-hover table-striped table-scrollable">
            <tbody id="rows"></tbody>
        </table>
    </div>
ส่วนหัวและร่างกายแบ่งออกเป็นสองตารางแยกกัน หนึ่งในนั้นอยู่ใน DIV ที่มีสไตล์ที่จำเป็นในการสร้างแถบเลื่อนแนวตั้ง นี่คือ CSS ที่ฉันใช้:
.bodycontainer {
  //height: 200px
  width: 100%;
  margin: 0;
}
.table-scrollable {
  margin: 0px;
  padding: 0px;
}
ฉันให้ความเห็นเกี่ยวกับความสูงที่นี่เพราะฉันต้องการให้โต๊ะไปถึงด้านล่างของหน้าไม่ว่าความสูงของหน้าจะเป็นเท่าใด
แอ็ตทริบิวต์ data-sort ที่ฉันใช้ในส่วนหัวนั้นยังใช้ในทุก td วิธีนี้ฉันจะได้ความกว้างและการเติมของทุก td และความกว้างของแถว การใช้คุณลักษณะ data-sort ฉันตั้งค่าโดยใช้ CSS การเติมและความกว้างของแต่ละส่วนหัวตามลำดับและแถวส่วนหัวที่ใหญ่กว่าเสมอเนื่องจากไม่มีแถบเลื่อน นี่คือฟังก์ชั่นการใช้ coffeescript:
fixHeaders: =>
  for header, i in @headers
    tdpadding = parseInt(@$("td[data-sort=#{header}]").css('padding'))
    tdwidth = parseInt(@$("td[data-sort=#{header}]").css('width'))
    @$("th[data-sort=#{header}]").css('padding', tdpadding)
    @$("th[data-sort=#{header}]").css('width', tdwidth)
    if (i+1) == @headers.length
      trwidth = @$("td[data-sort=#{header}]").parent().css('width')
      @$("th[data-sort=#{header}]").parent().parent().parent().css('width', trwidth)
      @$('.bodycontainer').css('height', window.innerHeight - ($('html').outerHeight() -@$('.bodycontainer').outerHeight() ) ) unless @collection.length == 0
ที่นี่ฉันคิดว่าคุณมีส่วนหัวที่เรียกว่า @headers
มันไม่สวย แต่ใช้งานได้ หวังว่าจะช่วยใครซักคน