解决方法
使用自定义实现.就像这样简单:
table { table-layout: fixed; width: 100%; *margin-left: -100px;/*ie7*/ } td,th { vertical-align: top; border-top: 1px solid #ccc; padding:10px; width:100px; } .col1{ position:absolute; *position: relative; /*ie7*/ left:0; width:100px; } .col2{ position:absolute; *position: relative; /*ie7*/ left:100px; width:100px; } .col3{ position:absolute; *position: relative; /*ie7*/ left:200px; width:100px; } .col4{ position:absolute; *position: relative; /*ie7*/ left:300px; width:100px; } .outer {position:relative} .inner { overflow-x:scroll; overflow-y:visible; width:500px; margin-left:400px; }
<div class="outer"> <div class="inner"> <table> <tr> <th class="col1">Header A</th> <th class="col2">Header A</th> <th class="col3">Header A</th> <th class="col4">Header A</th> <td>col 2 - A (WITH LONGER CONTENT)</td> <td>col 3 - A</td> <td>col 4 - A</td> <td>col 5 - A</td> <td>col 6 - B</td> <td>col 7 - B</td> </tr> <tr> <th class="col1">Header B</th> <th class="col2">Header B</th> <th class="col3">Header B</th> <th class="col4">Header B</th> <td>col 2 - B</td> <td>col 3 - B</td> <td>col 4 - B</td> <td>col 5 - B</td> <td>col 6 - B</td> <td>col 7 - B</td> </tr> <tr> <th class="col1">Header C</th> <th class="col2">Header C</th> <th class="col3">Header C</th> <th class="col4">Header C</th> <td>col 2 - C</td> <td>col 3 - C</td> <td>col 4 - C</td> <td>col 5 - C</td> <td>col 6 - B</td> <td>col 7 - B</td> </tr> </table> </div> </div>
或者jsfiddle:
https://jsfiddle.net/h75zn59o/21/
注意:
使用原始CSS,它只是应用于“th”,但使用类(在此示例中,col1,col2等)
我们可以为不同的列分配不同的固定位置.
因为列的宽度为100px,所以每个后续列位于另一个100px左侧,因此,第一个是0px,然后是colp的100px等,以避免与前一列重叠.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。