本文主要介绍在IE浏览器中,实现表头固定的一种方法。这种方法使用到了 IE 浏览器特有的 expression 方法。

表头固定DEMO1

主要代码:

<style type="text/css">
.fixedHeaderTr
{
position:relative; //相对定位
top:expression(this.offsetParent.scrollTop);
//在expression中使用JS表达式,实时设置自己距离mainDiv的top
}; .mainDiv
{
overflow:auto; //溢出则自动出现滚动条
height:400px; //选择比较小的长和宽,这样会自动出现滚动条
width:800px; //
position:relative;
//相对定位,方便fixedHeaderTr样式使用offsetParent引用到自己。根据自己来相对定位
  padding:0;
  margin:0;
}
</style> </head> <body>
<div class="mainDiv" id="mainDiv"> <table >
<tr class="fixedHeaderTr" bgcolor="red" >
<th width="8%">站名</th>
<th width="5%">待卸</th>
<th width="5%">空车</th>
<th width="5%">重车</th>
<th width="6%">非运<br/>用车</th>
<th width="6%">其他<br/>车辆</th>
<th width="5%">待装</th>
<th width="5%">停时</th>
</tr>
<tr>
其它
</tr>
</table>
</div>
</body>

重点是:expression 、offsetParent 、 scrollTop

expression

  这是IE5,IE6,IE7才支持的一个CSS动态属性,不过从IE8 beta2标准模式开始,微软已经取消对css expression的支持。

  IE5 及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来.

  这里的CSS属性可以是元素固有的属性, 也可以是自定义属性.

  就是说CSS属性后面可以是一段Javascript表达式,CSS属性的值等于Javascript表达式计算的结果。

  在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。

  简单说,就是在 expression 中可以添加 Javascript 代码,以达到动态设置CSS样式的目的。但很明显,这种方法不符合Web规范,且不兼容其它浏览器。

offsetParent

  offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。

  如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素(在标准兼容模式下为html元素;在怪异呈现模式下为body元素)的引用。

   当容器元素的style.display 被设置为 "none"时(译注:IE和Opera除外),offsetParent属性 返回 null.

  简答说:就是在祖先元素中找寻使用relative或absolute定位的元素来作为“offsetParent”,直至body标签

scrollTop

  获取某个元素的滚动条的垂直偏移。滚动条下拉10px,即返回10。

最后附上一张各种元素定位和滚动的图。

scrollHeight: 获取对象的滚动高度。 
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度

offsetHeight:获取对象相对于版面或由父坐标offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由offsetTop 属性指定的父坐标的计算顶端位置

event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标

IE的表头固定/表头不动(使用expression)的更多相关文章

  1. css控制固定表头,兼容行列合并

    项目中设计的报表table设计的列数相对过多,当拖动下方的滚动条时无法对应表头所对应的列,因此在网上搜索了好一段日子,最后在网上找到了一些参考资料,然后总结归纳出兼容行列合并的固定表头demo. 多浏 ...

  2. IE,表头固定

    <html>  <head>   <title>表头固定</title>    <style type="text/css"& ...

  3. 原生javascript 固定表头原理与源码

    我在工作中需要固定表头这个功能,我不想去找,没意思.于是就写了一个,我写的是angularjs 自定义指令 起了个 "fix-header" ,有人叫  "freeze- ...

  4. 多表头固定demo--html Table

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 固定表头/锁定前几列的代码参考[JS篇]

    引语:做有难度的事情,才是成长最快的时候.前段时间,接了一个公司的稍微大点的项目,急着赶进度,本人又没有独立带过队,因此,把自己给搞懵逼了.总是没有多余的时间来做自己想做的事,而且,经常把工作带入生活 ...

  6. css 固定表头的表格,和 width:auto, margin:auto等 自计算方法

    实现思路: 外层用一个table,里面写好Header,然后里面再写一个table里面写好header.然后自己控制overflow的值使内部的tablemargin-top和外层的行高一致就可以实现 ...

  7. html bootstrap 表头固定在顶部,表列 可以自由滚动的效果

    该效果主要是依照 bootstrap 的一个样式,class="navbar-fixed-top"; 参考网址为:http://v3.bootcss.com/components/ ...

  8. jQuery 关于ScrollableGridPlugin.js(固定表头)插件的逐步解析

    以前写前台的时候需要用哪些效果从来都是有现成的东西拿来就用的,因为自己真的是有些懒,毫无探索精神,只重视结果,不追求过程. 这个ScrollableGridPlugin.js是从网上找到的一个具有固定 ...

  9. html css 如何将表头固定(转)

    html css 如何将表头固定 position属性取值为fixed时,则元素的位置将不受滚动条的影响,而是直接依据窗口定位,这就是将表头固定的最直接方法,网上其他途径感觉都是在走弯路.但是与此同时 ...

随机推荐

  1. 【STL】string 常用函数

    string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...

  2. jquery值ajaxForm

    参考 http://www.360doc.com/content/13/1001/17/1542811_318406421.shtml

  3. linux导入导出数据库方法 windows导入导出数据库方法

    1.使用管理员账号(sys)登录查询字符集信息 第一步:查询LinuxOracle数据库的字符集 select userenv('language') from dual; 查询结果集可能为:AMER ...

  4. iOS 十六进制的相加取反

    ios中将NSstring字符串转换成char类型 NSString *string = [NSString stringWithFormat:@"5D"]; const char ...

  5. java中的包装类

    每一个包装类都对应一种基本数据类型.包装类有:Integer.character.Byte.Short.Long.Floot.Double.Boolean这八种,分别对应的基本数据类型是:int.ch ...

  6. Object layout in C++ and access control

    The variables are guaranteed to be laid out contiguously, as in C. However, the access blocks may no ...

  7. fedora23开发环境搭建手册

    chrome安装 [安装chrome教程] nodejs环境搭建 dnf install nodejs dnf install npm sublime text 编辑器安装配置 [fedora安装su ...

  8. Android中用Application类实现全局变量

    最近在项目中,遇到了application这个类,开始不知道有什么用,经过学习后才知道它的用途也蛮大的,举个例子,如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在 ...

  9. MATLAB r2014a 下载+安装+激活

    MATLAB r2014a,下载包就有7个多GB,装完占用9个多GB,慎装.界面还不错,稍有改良. 其实本文是下载+安装+破解啦.读书人的事,怎么能叫破解呢?所以我这里讲的是如何激活啦. MATLAB ...

  10. iOS:等待控件

    定义: @interface ViewController () { UIActivityIndicatorView *testActivityIndicator; } 实例化,开始旋转: -(voi ...