`
yelr_j
  • 浏览: 67546 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

基于IE与css的表格行头与多层列头锁定方法(转)

阅读更多

有许多的锁定或固定html表格表头的方法和技术,本文介绍的是一个基于IE和css的简易实现方法,基本思路为:使用div行级元素确定一个包含表格的区域,在区域滚动移动时定位非固定单元格的位置(top/left)。

1、确定表格区域

定义一个有边框的div元素,并设置其overfloaw属性为scroll,保证该区域恒有一个垂直与水平滚动条。

内容来自www.serverjia.cn电脑知识网

 

div#DivContainer { overflow: scroll; border: solid 1px gray; }

在div中嵌入一个表格,设置collapse属性为collapse,满足单边框(合并边框)的外观。 内容来自www.serverjia.cn电脑硬件知识网


table { border-collapse: collapse; }

2、单元格锁定选择器类

需要设计三种类型的锁定单元格:垂直方向锁定单元格(VLocked)、水平方向锁定单元格(HLocked)及双向锁定单元格(Locked),而一般表格内容单元格则设置其位置属性position为relative,见如下css代码:

 

 


td 

{ 内容来自www.serverjia.cn电脑知识网

position: relative; padding: 5px; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray; 内容来自www.serverjia.cn电脑知识网

}

 

锁定表格行头时,要求行头的单元格水平方不移动,即区域移动时重定位这些行头单元格的left边界值,见如下css代码:

td.HLocked /* 水平方向锁住单元格 */ 内容来自www.serverjia.cn电脑硬件知识网

z-index: 10; position: relative; left: expression(parentNode.parentNode.parentNode.parentNode.scrollLeft); background-color: #cccccc; text-align: center; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray;

 

内容来自www.serverjia.cn电脑硬件知识网

需要指出,表格td元素的parentNode元素是tr,tr.parentNode元素是tbody,tbody.parentNode元素是table,所以td.parentNode.parentNode.parentNode.parentNode是定制的div元素,即当前表格区域。

 

锁定表格列头时,需要考虑两种情况单元格。一种是不锁定行头的单元格,此时只需要垂直方向不移动即可,见如下css代码: 内容来自www.serverjia.cn电脑硬件知识网

td.VLocked

{

z-index: 20; position: relative; top: expression(parentNode.parentNode.parentNode.parentNode.scrollTop); font-size: 10pt; color: black; background-color: #cccccc; text-align: center; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray; 内容来自www.serverjia.cn电脑硬件知识网

}

 

另一种是锁定行头单元格时,这些是行头又是列头的单元格必须双向锁定,见如下css代码:

 

 

td.Locked

 

z-index: 30; position: relative; top: expression(parentNode.parentNode.parentNode.parentNode.scrollTop); left: expression(parentNode.parentNode.parentNode.parentNode.scrollLeft); font-size: 10pt; color: black; background-color: #cccccc; text-align: center; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray; 内容来自www.serverjia.cn电脑硬件知识网

}

 

 

还有两点需要说明:

 

  1. 使用了z-index坐标,并且是Locked类选择器的z-index值最大,即最靠近浏览者;
  2. 在aspx中使用时,需要删除Visual Studio自动产生的行。

 

下面是完整的css代码和htm演示代码,测试时需要建立一个IIS虚拟路径,拷贝css文件和htm文件到该虚拟路径中,然后通过浏览器浏览htm文件:

  1. div#DivContainer
  2. {
  3. overflow:scroll;border:solid1pxgray;
  4. }
  5. table
  6. {
  7. border-collapse:collapse;
  8. }
  9. td
  10. {
  11. position:relative;padding:5px;
  12. border-top:solid0pxgray;border-bottom:solid1pxgray;border-left:solid0pxgray;border-right:solid1pxgray;
  13. }
  14. td.Locked/*水平与垂直方向锁住单元格,不随鼠标或滚动条移动*/
  15. {
  16. z-index:30;position:relative;
  17. top:expression(parentNode.parentNode.parentNode.parentNode.scrollTop);
  18. left:expression(parentNode.parentNode.parentNode.parentNode.scrollLeft);
  19. background-color:#cccccc;text-align:center;
  20. border-top:solid0pxgray;border-bottom:solid1pxgray;border-left:solid0pxgray;border-right:solid1pxgray;
  21. }
  22. td.HLocked/*水平方向锁住单元格*/
  23. {
  24. z-index:10;position:relative;left:expression(parentNode.parentNode.parentNode.parentNode.scrollLeft);
  25. background-color:#cccccc;text-align:center;
  26. border-top:solid0pxgray;border-bottom:solid1pxgray;border-left:solid0pxgray;border-right:solid1pxgray;
  27. }
  28. td.VLocked/*垂直方向锁住单元格*/
  29. {
  30. z-index:20;position:relative;top:expression(parentNode.parentNode.parentNode.parentNode.scrollTop);
  31. background-color:#cccccc;text-align:center;
  32. border-top:solid0pxgray;border-bottom:solid1pxgray;border-left:solid0pxgray;border-right:solid1pxgray;
  33. }

 

分享到:
评论

相关推荐

    html表格中,锁定行头和列头

    在html的表格中,锁定行头和列头,使用样式表,不用加载第三方控件.

    可以拖动行头和列头的表格

    "可以拖动行头和列头的表格"是一个重要的功能,它为用户提供了一种自定义视图和优化数据浏览体验的方式。这个特性通常应用于数据分析、报告展示以及各种管理界面,让用户能够根据自己的需求调整列宽,从而更方便地...

    8款好看的css表格.rar

    本资源“8款好看的css表格.rar”提供了一系列由国外设计师编写的精美CSS表格示例,这些表格在视觉呈现上极具吸引力,能够为网页增加专业且现代的外观。 CSS表格的设计主要围绕以下几个方面展开: 1. **布局与结构*...

    jquery锁定行锁定列

    "jquery锁定行锁定列"这个主题就是关于如何在jQuery中实现表格的冻结或锁定功能,以便用户在滚动页面时,特定的行或列始终保持可见,提升数据浏览体验。 首先,我们来理解一下“冻结行”和“锁定列”的概念。冻结行...

    HTML+JS实现固定表头和锁定左列的Demo(兼容IE,火狐,谷歌等大众浏览器)

    在这个特定的Demo中,开发者使用了这两种技术来实现一个功能,即在表格中固定表头和锁定左列,以便于用户在滚动查看长表格内容时,表头始终保持可见,左侧列也保持固定。这个功能对于数据密集型的网页应用尤其有用,...

    8款非常好看的css表格

    虽然Slick Grid使用了JavaScript,但它在CSS方面也有出色表现,提供了高度定制的表格样式,包括行选择、分页、滚动和列排序等功能,适用于大数据集的显示。 每款CSS表格都有其独特之处,开发者可以根据项目需求和...

    21个新奇漂亮的AjaxCSS表格设计

    标题和描述均提到了“21个新奇漂亮的AjaxCSS表格设计”,这表明文章旨在介绍一系列结合了Ajax和CSS技术的创新表格设计方案。Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,它允许网页...

    vue表格实现固定表头首列

    以上就是不依赖UI插件,仅使用Vue核心功能实现固定表头和首列的表格的方法。这个过程中,你需要理解Vue的数据绑定、组件化以及CSS布局等基础知识,并结合实际项目需求进行调整。在实际项目中,你可能还需要处理更多...

    基于C#+VS2008实现的多层列表头GridView控件扩展程序例子

    首先,多层列表头通常涉及到嵌套的表格结构,这意味着我们需要在GridView的列定义中创建多个级别。在C#代码中,可以通过重写GridView的`RowCreated`事件来动态添加这些列。这个事件会在每个GridView行被创建时触发,...

    一些漂亮的CSS表格样式

    一些非常漂亮实用的CSS表格样式,使用方便.页面简洁!

    固定gridview行头,列头.rar固定gridview行头,列头

    7. **固定行头**:固定行头的概念与固定表头类似,主要是让某一列的值在滚动时始终保持可见。这通常通过在每个分组或分类的开始添加一个额外的“标题”行并应用相同的固定技术来实现。 8. **CSS预处理器**:如果...

    ie-css3(让ie6 ie7 ue8支持css3).rar

    标题中的“ie-css3(让ie6 ie7 ue8支持css3).rar”指的是一个针对Internet Explorer(IE)浏览器的解决方案,尤其是版本6、7和8,这些版本不原生支持CSS3的新特性。这个压缩包包含了一个名为“ie-css3(让ie678支持css...

    div+css百分比表格+DIV+CSS+JS静态分页程序+DIV+CSS像素表格

    div+css百分比表格+DIV+CSS+JS静态分页程序+DIV+CSS像素表格 百分比表格(用DIV+CSS)以百分比显示,可以根据窗口的大小自动调节所显示的大小! DIV+CSS+JS静态分页程序可兼容主流浏览器(IE、FF、Opera) DIV+CSS表格...

    js css精美表格

    "js css精美表格"的主题涉及到了JavaScript和CSS技术在创建美观、交互性强的表格方面的应用。在这个主题下,我们可以深入探讨以下几个关键知识点: 1. CSS(层叠样式表):CSS是用于控制网页元素样式的重要工具。在...

    iecss3.htc css3圆角支持文件

    iecss3.htc css3圆角支持文件

    固定表格行和列css样式控制

    固定表格行和列css样式控制,代码只做了固定一行两列,下载了根据自己的需求修改

    很好用的 表格锁定表头 和列

    实现表格锁定表头和列的技术方案多样,除了上述的纯CSS方法,还可以借助JavaScript库如jQuery插件或现代的Web组件,如Angular或React中的库。这些库提供了更丰富的功能和更好的浏览器兼容性,但可能需要更多的资源和...

    基于Bootstrap table组件实现多层表头的实例代码

    多层表头是指在表格中实现多个层次的表头,每个层次可以包含多个列。这种结构常用于展示复杂的数据关系,例如树形结构的数据。Bootstrap Table提供了一个简单的方式来实现多层表头,只需要使用合适的HTML结构和CSS...

    漂亮的表格css+html

    此外,使用CSS选择器可以对特定的单元格、行或列进行样式定制。例如,给表头添加背景色: ```css th { background-color: #f2f2f2; } ``` 还可以通过CSS3的新特性如过渡、阴影、圆角等提升表格的视觉效果。例如,...

    左侧是表头的表格

    标题“左侧是表头的表格”暗示我们正在讨论一种特殊布局的表格,其中表头位于左侧,这在处理大量列数据时特别有用,因为它允许用户更容易地浏览和理解表格的内容。这种类型的表格常见于数据分析、报表展示以及各种...

Global site tag (gtag.js) - Google Analytics