table表头固定(原创)

  在tableli经常会遇到像nav导航样的需求,那就是tbody里面的内容可以呀滚动但是要求thead要一直显示在table上方。

这里我写了个简单的插件,无论table多大,位置在哪,都可以使thead固定在table上方;使用的原理是clone一个thead出来,再使用定位,使克隆的元素定位在table上方。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
 9 <style type="text/css">
10     *{margin: 0;padding: 0;}
11     #box{position: relative;}
12     #box1{position: relative;left: 50px;top: 200px;}
13     table{display: inline-block;overflow-y: scroll;border:solid 1px #ddd;position: absolute;left: 50px;top: 20px;}
14     thead,tbody,tr{display: inline-block;width: 100%;}
15     thead{background: #f5f5d5;height: 36px;line-height: 36px;}
16     th,td{display: inline-block;text-align: center;border-top:solid 1px #ccc;width: 33%;box-sizing: border-box;}
17     th{border:none;}
18     .cloneHead{border:none;background:#999;color:#fff;}
19 </style>
20 <div id="box">
21     <table id="table" width="300" height="150">
22         <thead>
23             <tr><th>a</th><th>b</th><th>c</th></tr>
24         </thead>
25         <tbody>
26             <tr><td>1.1</td><td>1.2</td><td>1.3</td></tr>
27             <tr><td>2.1</td><td>2.2</td><td>2.3</td></tr>
28             <tr><td>3.1</td><td>3.2</td><td>3.3</td></tr>
29             <tr><td>4.1</td><td>4.2</td><td>4.3</td></tr>
30             <tr><td>5.1</td><td>5.2</td><td>5.3</td></tr>
31             <tr><td>6.1</td><td>6.2</td><td>6.3</td></tr>
32             <tr><td>7.1</td><td>7.2</td><td>7.3</td></tr>
33             <tr><td>8.1</td><td>8.2</td><td>8.3</td></tr>
34             <tr><td>9.1</td><td>9.2</td><td>9.3</td></tr>
35             <tr><td>10.1</td><td>10.2</td><td>10.3</td></tr>
36             <tr><td>11.1</td><td>11.2</td><td>11.3</td></tr>
37             <tr><td>12.1</td><td>12.2</td><td>12.3</td></tr>
38             <tr><td>13.1</td><td>13.2</td><td>13.3</td></tr>
39             <tr><td>14.1</td><td>14.2</td><td>14.3</td></tr>
40         </tbody>
41     </table>
42 </div>
43 <div id="box1">
44     <table id="table1" width="150" height="200">
45         <thead>
46             <tr><th>W</th><th>A</th><th>L</th></tr>
47         </thead>
48         <tbody>
49             <tr><td>1.1</td><td>1.2</td><td>1.3</td></tr>
50             <tr><td>2.1</td><td>2.2</td><td>2.3</td></tr>
51             <tr><td>3.1</td><td>3.2</td><td>3.3</td></tr>
52             <tr><td>4.1</td><td>4.2</td><td>4.3</td></tr>
53             <tr><td>5.1</td><td>5.2</td><td>5.3</td></tr>
54             <tr><td>6.1</td><td>6.2</td><td>6.3</td></tr>
55             <tr><td>7.1</td><td>7.2</td><td>7.3</td></tr>
56             <tr><td>8.1</td><td>8.2</td><td>8.3</td></tr>
57             <tr><td>9.1</td><td>9.2</td><td>9.3</td></tr>
58             <tr><td>10.1</td><td>10.2</td><td>10.3</td></tr>
59             <tr><td>11.1</td><td>11.2</td><td>11.3</td></tr>
60             <tr><td>12.1</td><td>12.2</td><td>12.3</td></tr>
61             <tr><td>13.1</td><td>13.2</td><td>13.3</td></tr>
62             <tr><td>14.1</td><td>14.2</td><td>14.3</td></tr>
63         </tbody>
64     </table>
65 </div>
66 <script type="text/javascript">
67     $.fn.scrollHead = function (father) {
68         var head = $(this).find("thead").clone();
69         this.scroll(function () {
70             if(this.scrollTop > 0){
71                 $("#"+father).append(head[0]);
72                 head[0].className = "cloneHead";
73                 head[0].style.cssText = "position:absolute;left:"+$(this).css("left")+";top:"+$(this).css("top")+";z-index:2;width:"+
74                 $(this).find("thead").width()+"px;"
75             }else{
76                 $(head[0]).remove()
77             }
78         })
79     }
80     $("#table").scrollHead("box")
81     $("#table1").scrollHead("box1")
82 </script>
83
84 </body>
85 </html>
时间: 2024-10-29 00:48:16

table表头固定(原创)的相关文章

table 表头固定 thead固定. 1) 使用jquery.freezeheader.js

方法一: 使用jquery.freezeheader.js 固定表头: 1-: 初始化: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>表格table固定thead表头</title> 6 <style type="text/css"> 7 8 tab

table表头固定

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>固定表格表头</title> <meta http-equiv="X-UA-Compatible" content="IE=7

固定table表头

项目中设计的报表table设计的列数相对过多,当拖动下方的滚动条时无法对应表头所对应的列,因此在网上搜索了好一段日子,最后在网上找到了一些参考资料,然后总结归纳出兼容行列合并的固定表头demo. 多浏览器没有做太多测试,但是在ie9.火狐.360浏览器中已测试通过. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

bootstrap table 实现固定悬浮table 表头并可以水平滚动

在开发项目中,需要将表格头部固定,而且表格大多数情况下是会水平滚动的.项目的css框架是bootstrap 3,故也可以叫做bootstrap table. 需要实现的是:表格头部固定,并且支持水平滚动 html code(source table): <table id="top_fix_table" border="0" cellpadding="4" cellspacing="0" class="tabl

表头固定内容可滚动表格的3种实现方法

有时候,我们在开发前端页面过程中,可能会用到这种表格:表头固定不动,表格内容(<tbody>)需要竖直滚动. 像这样的: 还有这样的: 通过研究,我大致总结了以下三种实现办法供大家参考,如果有错误之处敬请指正,也欢迎拍砖!! 一.表格总宽度自动,每列宽度设置统一用<colgroup>设置 这种实现方法最简单,只需要用两个表格,一个表格作为表头,另一个表格用<div>包裹并设置该<div>的高度固定,高度溢出可滚动即可.两个表格的列宽用相同的<colgr

css表头固定样式的方法

这篇文章主要为大家介绍了css表头固定样式的方法,涉及样式的相关操作技巧,需要的朋友可以参考下 本文实例讲述了css表头固定样式的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <style type="text/css">/*表头样式*/.scll {position: relative;top: expression(this.offsetParent.scrollTop);//background: url(../img/tab_15.gif)

bootstrap表头固定

css: //表头固定 .fixed_headers thead tr { display: block; position: relative;}.fixed_headers tbody { display: block; overflow: auto; height: 250px;}//每列宽度 .fixed_headers td:nth-child(1), .fixed_headers th:nth-child(1) { min-width: 250px; text-overflow:el

IE,表头固定

<html>  <head>   <title>表头固定</title>    <style type="text/css">    /*表头样式*/    .scll {     position: relative;     top: expression(this.offsetParent.scrollTop);     background-color: #BCF4EC;     text-align: center;

前端基础学习-CSS表头固定

纯CSS实现表头固定之所以难,主要在两点.一是占有最大市场份额的IE6不支持position:fixed.另一个,是人们想破头都想在一起表格中实现这种效果.不过外国真的人用纯CSS实现了这种效果,动用了数量惊人的CSS hacks--我觉得,如果搞到代码如此难懂且难扩展,还不如用javascript好了.碰巧今天我也遇到这种需求,换个视角想想,真的搞出来了. 我们知道,CSS是负责表现,HTML是负责结构,同样的结构,换个样式,给人的感觉完全不同,这也说明人的眼睛是很容易受骗.因此前些狂热鼓吹D