可以调整列宽的表格

简介: 可以调整列宽的表格关键字: javascript table 今天用JavaScript实现了对表格列宽进行调整的功能。 想要实现表格内的文字在宽度不足时不会被显示出来,网上有人说在TD里面加DIV,谬也。

可以调整列宽的表格

关键字: javascript table
今天用JavaScript实现了对表格列宽进行调整的功能。

想要实现表格内的文字在宽度不足时不会被显示出来,网上有人说在TD里面加DIV,谬也。正确的方法是Table的CSS需要有下面的属性:

Java代码 复制代码
  1. table-layout:fixed;  


TD的CSS需要有:

Java代码 复制代码
  1. overflow:hidden;   
  2. text-overflow:ellipsis;   
  3. white-space:nowrap;  



程序基础的思路就是在TH里加一个DIV,MouseDown时就改变Body的MouseMove事件,再根据Mouse移动的大小来动态改变Table和TD的Width。

在TH中动态添加DIV时,发现只设置text-align:right在FireFox里不能让新的DIV居右显示,这是因为在FF中要设置新生成的DIV左右的Margin才行,代码如下:

Java代码 复制代码
  1. var resize=document.createElement("DIV");   
  2. resize.style.width=6;   
  3. resize.style.height=10;   
  4. resize.style.backgroundColor="#F00";   
  5. if(!IE)   
  6. {   
  7.     resize.style.marginRight="none";   
  8.     resize.style.marginLeft="auto";   
  9. }   
  10. resize.onmousedown=_md;   
  11. resize.style.cursor="col-resize";   
  12. this.ths[i].style.textAlign="right";   
  13. this.ths[i].appendChild(resize);  


注意非IE里需要设置的部分。

在改变Body的MouseMove事件时,用到了我写的别一个BodyEventsManager类,原因是如果真的在一个项目中,可能原来Body就已经定义了MouseMove方法,如果直接覆盖就恢复不了啦。在BodyEventsManager中有一个Stack,可以把原有的方法保留住,这样就算是多次改写,只要代码中注意用BodyEventsManager.pop("onmousemove")进行还原,程序是不会出问题的。

附件中的页面可以看到最后实现的效果,在IE和FireFox下通过测试。


目录
相关文章
|
6月前
表格宽度和高度
表格宽度和高度。
40 1
|
6月前
LabVIEW 调整Table表格行高列宽的方法与例程
LabVIEW 调整Table表格行高列宽的方法与例程
368 1
|
JavaScript 前端开发 Java
28jqGrid 3.0新特征- 调整列宽
28jqGrid 3.0新特征- 调整列宽
39 0
table怎么实现部分列固定宽度,其它列宽自适应拉伸
table怎么实现部分列固定宽度,其它列宽自适应拉伸
495 0
table怎么实现部分列固定宽度,其它列宽自适应拉伸
表格边框设置
其中,rules去表格内行和列的表格线,frame去表格边框。rules=rows去行.rules=cols去列frame=vsides 只显示左右frame=hsides 只显示上下frame=above 只显示上方
681 0
用宏批量更改表格的宽度
用宏批量更改表格的宽度 'Alt+F11,插入模块 Sub BatchChangeTableStyle() Dim oTable As Table For Each oTable In ActiveDocument.
670 0
|
知识图谱 前端开发 算法
表格滚动方法总结
例1: 表头固定 html 序号 姓名 年龄 性别 ...
941 0