ฉันเดาว่าสิ่งที่คุณกำลังพยายามทำคือการคงส่วนหัวไว้และเลื่อนเนื้อหาของร่างกาย คุณสามารถเลื่อนเนื้อหาได้ 2 ทิศทาง:
- ในแนวนอน: คุณจะไม่สามารถเลื่อนเนื้อหาในแนวนอนได้เว้นแต่คุณจะใช้แถบเลื่อน (เช่นแถบเลื่อน jQuery) ฉันอยากจะแนะนำให้หลีกเลี่ยงการใช้ตารางในกรณีนี้
- ในแนวตั้ง: คุณจะไม่สามารถทำได้ด้วย
tbody
แท็กเนื่องจากการกำหนดdisplay:block
หรือdisplay:inline-block
จะทำให้เค้าโครงของตารางเสียหาย
นี่คือวิธีแก้ปัญหาโดยใช้divs
: JSFiddle
HTML:
<div class="wrap_header">
<div class="column">
Name
</div>
<div class="column">
Phone
</div>
<div class="clearfix"></div>
</div>
<div class="wrap_body">
<div class="sliding_wrapper">
<div class="serie">
<div class="cell">
AAAAAA
</div>
<div class="cell">
323232
</div>
<div class="clearfix"></div>
</div>
<div class="serie">
<div class="cell">
BBBBBB
</div>
<div class="cell">
323232
</div>
<div class="clearfix"></div>
</div>
<div class="serie">
<div class="cell">
CCCCCC
</div>
<div class="cell">
3435656
</div>
<div class="clearfix"></div>
</div>
</div>
</div>
CSS:
.wrap_header{width:204px;}
.sliding_wrapper,
.wrap_body {width:221px;}
.sliding_wrapper {overflow-y:scroll; overflow-x:none;}
.sliding_wrapper,
.wrap_body {height:45px;}
.wrap_header,
.wrap_body {overflow:hidden;}
.column {width:100px; float:left; border:1px solid red;}
.cell {width:100px; float:left; border:1px solid red;}
/**
* @info Clearfix: clear all the floated elements
*/
.clearfix:after {
visibility:hidden;
display:block;
font-size:0;
content:" ";
clear:both;
height:0;
}
.clearfix {display:inline-table;}
/**
* @hack Display the Clearfix as a block element
* @hackfor Every browser except IE for Macintosh
*/
/* Hides from IE-mac \*/
* html .clearfix {height:1%;}
.clearfix {display:block;}
/* End hide from IE-mac */
คำอธิบาย:
คุณมีsliding wrapper
ซึ่งจะมีข้อมูลทั้งหมด
สังเกตสิ่งต่อไปนี้:
.wrap_header{width:204px;}
.sliding_wrapper,
.wrap_body {width:221px;}
มีความแตกต่างที่ 17px เนื่องจากเราต้องคำนึงถึงความกว้างของแถบเลื่อนด้วย