`
fanjun
  • 浏览: 28033 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

实现固定表头表格的总结

    博客分类:
  • Web
阅读更多

这阵正好比较空闲,将以前收集的实现固定表头表格的方法在这里整理了一下。

原来想将代码直接贴在文章里,不过试了下载入很慢,所以就放在附件了。

 

方法1:使用CSS实现
在table外面套个div限制显示大小,同时设置表头单元格的样式为
position: relative;
top: expression(document.getElementById("div").scrollTop);
其中express是IE自带的CSS属性,可以在CSS中调用js代码。

 

这里通过express中的js可以让单元格总是固定在div的最上部,不随垂直滚动条滚动。

类似的-也可以设置left: expression(document.getElementById("div").scrollLeft),来冻结某一列不随水平滚动条滚动。当然若同时设置left和top样式,则这些单元格始终不会滚动。

 

附件中grid_css+table.html是一个基于CSS实现的行列固定的例子。
界面效果:
使用CSS实现效果

说明:
1、使用express来做表头固定,是最简单的,只需CSS即可,且可以支持多表头和列固定的情况
2、express是IE自带的CSS属性,在其他浏览器上都不支持;据网上的资料,express的执行效率可能有问题,鼠标移动时都会触发对应的js代码。使用需慎重!

 

方法2:使用js和table实现
基本思路:
1、使用js生成一个新的标题行,放在一个div中做为一个新表头。新建的表头,可以使用div内嵌span的方式来模拟;也可直接建一个新的table
2、将原table,放在另一个div中,同时删除表头
3、增加js代码,保持table在水平滚动时,新表头的div也会随着一起移动,保证表头和列的位置始终一致

整个表格被分到2个div中,一个放表头,一个放table。

 

附件中是grid_js+table.htm一个例子,实现了单行表头,修改一下也可以支持多行表头,在IE和FF上都可以使用:
界面效果:
使用js+table实现效果
 


方法3:使用js和div实现
其实基本思路跟方法2是一样的,只是更进一步,不在用table了,直接用div替代table来显示数据。
这样做的主要好处是,可以比较方便的把它扩展成一个Grid widget,由于不使用table了,不用再维护一套操作table DOM的代码。因为行都是用div拼成的,增加排序、列宽调整、直接编辑等功能都会方便一点。

 

附件中grid_js+div.html是我自己写的例子,使用JQUERY。

这个表格分为4个div,分别表示标题行、数据表格、水平滚动条、垂直滚动条,里面除了实现表头固定,还实现了用div模拟滚动条的功能
界面效果:
使用js+div实现

7
0
分享到:
评论
8 楼 fanjun 2013-09-26  
express是IE自带的CSS属性
submaze 写道
第一个实例不支持火狐~总体还是挺好的

7 楼 gshxsyq 2013-09-01  
不错,挺好的,个人推荐table+div的形式,页面改动量不是很大,同样也能实现跨浏览器兼容
6 楼 submaze 2013-03-06  
第一个实例不支持火狐~总体还是挺好的
5 楼 fanjun 2012-08-09  
vetom921 写道
請問一下 首行固定的方式有無任何好一點的解法....卡關好久了orz 雖然有jquery可固定表頭跟首行 但還是想用簡單的css+js解決@@~找好久了 一直無法解決手行固定的問題..如有好方法希望可以學習...謝謝大大的總結心得...雖然表頭固定方式用不到 但大大寫的很詳細....3Q

首行固定与表头固定实现方式是一行的,如用js+table的模式就是单独做个div,把首行放进去,js控制只做水平滚动,不做垂直滚动
4 楼 java_MagicWang 2012-07-19  
第二种方法相对简单一些
3 楼 vetom921 2012-04-10  
請問一下 首行固定的方式有無任何好一點的解法....卡關好久了orz 雖然有jquery可固定表頭跟首行 但還是想用簡單的css+js解決@@~找好久了 一直無法解決手行固定的問題..如有好方法希望可以學習...謝謝大大的總結心得...雖然表頭固定方式用不到 但大大寫的很詳細....3Q
2 楼 zhulin902 2010-11-25  
很不错哦~~
1 楼 Ahua772 2010-10-11  
  希望能帮我解决问题

相关推荐

    移动端table固定表头与固定第一列

    总结起来,实现移动端table的固定表头与固定第一列,主要涉及HTML5的表格结构、CSS的定位和层叠上下文以及可能的JavaScript滚动事件处理。通过这些技术,我们能够在移动端提供更好的数据浏览体验。

    JasperReport、ireport固定表头隐藏列

    在这个特定的案例中,我们关注的是如何在JasperReport和iReport中实现固定表头以及隐藏和显示列的功能。 首先,让我们了解一下JasperReport。JasperReport是一个开源的报表库,它允许开发者在各种应用程序中生成...

    固定表格表头的代码

    在网页设计中,固定表格表头是一项常见的需求,特别是在数据量大、需要横向或纵向滚动查看的场景下。...在实际开发中,还可以结合现代前端框架如React或Vue,创建更灵活和可复用的组件,以实现固定表头功能。

    html table 固定表头和列

    通常,它会结合HTML、CSS和可能的JavaScript来实现固定表头和列的功能。 五、兼容性和优化 虽然`position: sticky;`在现代浏览器中得到了广泛支持,但老版本的IE浏览器并不支持。为了确保兼容性,可能需要使用...

    固定表头的使用

    总结,BIRT固定表头的实现涉及报表设计和JavaScript编程两方面。通过设置报表元素和编写JQUERY代码,我们可以确保表头在用户滚动时始终保持可见,从而提高报表的可读性和用户体验。虽然提供的代码示例可能在某些...

    JS实现table表格固定表头且表头随横向滚动而滚动

    - 在滚动事件中动态调整表头div的top值,当滚动超过计算出的零界点时,表头的top值归零或者保持不变,从而实现固定表头效果。 2. **实现步骤**: - 创建两个table元素,一个作为表头,一个用于展示数据。 - 用一...

    固定表头table

    实现固定表头Table的方法多种多样,常见的包括前端实现和后端实现两种方式: 1. **前端实现**: - 使用HTML5 + CSS3的特性。 - 基于JavaScript库如jQuery、Vue.js、React等进行开发。 2. **后端实现**: - 在...

    jquery表头固定、列固定完美解决方案

    总结来说,"jquery表头固定、列固定完美解决方案"是通过jQuery库和自定义JavaScript插件实现的一种优化用户体验的方法,特别是在处理大量数据的表格时。它提供了表头和列的固定功能,使用户在浏览长表格时能更方便地...

    js table固定表头,固定列,全浏览器兼容

    总结来说,"js table固定表头,固定列,全浏览器兼容"这个主题涵盖的技术点包括:JavaScript事件监听、DOM操作、CSS定位技术、浏览器兼容性处理,以及可能的第三方库或插件的使用。实现这样的功能需要深入理解前端技术...

    html 固定表头 (上下,左右,缩放均支持,代码简单)

    总结来说,实现"html 固定表头"需要结合HTML、CSS和JavaScript的知识,考虑滚动、缩放和兼容性等多方面因素。通过不断优化,我们可以创建出既美观又实用的固定表头效果,提高用户在浏览大量数据时的体验。在实际项目...

    基于colResizable-1.6实现一个表头固定、列宽可调的table.zip

    这段代码首先引入了colResizable库,然后在页面加载完成后,找到id为"myTable"的表格并应用colResizable的初始化方法,设置`fixed: true`以实现固定表头的效果。 为了使colResizable正常工作,我们需要确保HTML表格...

    GridView或DataGrid 固定表头,滚动数据的例子学习心得

    因此,实现固定表头并滚动数据的功能成为了一个必要的优化。 标题中的"GridView或DataGrid 固定表头,滚动数据的例子学习心得"指的是一种技术技巧,用于解决上述问题。主要方法是通过CSS样式和JavaScript来实现。...

    layui js 动态加载数据 复杂表头多表头实例.pdf

    本文将针对 Layui 的表格组件,讲解如何动态加载数据实现复杂表头多表头实例。 一、Layui 表格组件简介 Layui 的表格组件提供了许多实用的功能,例如数据渲染、分页、排序、编辑等等。它可以轻松地将数据渲染到...

    gridview固定表头的一个具体实例----横向滚动 纵向滚动

    ### GridView固定表头实现——横向滚动与纵向固定 在网页应用开发中,特别是涉及到大量数据展示的情况下,如何优雅地处理表格中的数据展示成为一个重要的技术挑战。本文将通过一个具体的实例来探讨如何实现在使用...

    jquery 固定表头和列

    总结来说,实现jQuery固定表头和列主要涉及HTML布局、CSS样式和jQuery的滚动事件监听。通过合理地组合这些技术,我们可以创建出用户友好的数据展示表格,即使在大量数据下也能保持清晰的结构。实际应用中,根据需求...

    vue.js表格实现表头首行固定代码.zip

    Vue.js提供了丰富的插件和库,如`element-ui`、`vuetify`等,它们都提供了现成的表格组件,能够快速实现固定表头的效果,而无需从零开始编写所有代码。 总结一下,本压缩包提供的代码示例展示了如何在Vue.js中实现...

    表格排序和表头浮动

    表头浮动,又称为“固定表头”,是指当用户滚动页面时,表格的表头始终保持在视口顶部,这样用户始终能看到当前查看的数据是哪一列。这对于长表格尤其重要,因为它保持了用户对数据列的视觉参考,避免了频繁滚动回...

    QTableWidget QTableView 自定义复杂表头(多行表头,表头合并) 、冻结、固定特定的行

    今天我们将深入探讨如何实现标题中提及的几个关键功能:自定义复杂表头(包括多行表头和表头合并)、冻结或固定特定行。 首先,让我们从`QTableWidget`开始。`QTableWidget` 是一个即用型的表格控件,提供了完整的...

    基于jquery的固定html table表头/列头插件

    总结来说,"jquery.fixedtable.js"是一个实用的jQuery插件,旨在提升网页中大型表格的用户体验,通过固定表头和列头,使得数据浏览更加方便。它具有良好的浏览器兼容性,且易于集成到现有项目中。开发者可以根据自身...

Global site tag (gtag.js) - Google Analytics