`
larlf
  • 浏览: 107703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

可以调整列宽的表格

阅读更多
今天用JavaScript实现了对表格列宽进行调整的功能。

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

table-layout:fixed;


TD的CSS需要有:

	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;



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

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

var resize=document.createElement("DIV");
resize.style.width=6;
resize.style.height=10;
resize.style.backgroundColor="#F00";
if(!IE)
{
	resize.style.marginRight="none";
	resize.style.marginLeft="auto";
}
resize.onmousedown=_md;
resize.style.cursor="col-resize";
this.ths[i].style.textAlign="right";
this.ths[i].appendChild(resize);


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

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

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



分享到:
评论
4 楼 meimei_gongzhu 2011-08-31  
很强大,谢谢!大牛 [b][/b]
3 楼 qingfeng825 2009-01-04  
借用了,首先谢谢楼主。
不过,我感觉把以下两点改进一下就更好了。
1、TH 中的列名要居中对齐,拉动的DIV居右,不知道楼主可否实现,请辞教。
2、如果TH能够不换行用户体验会更好,不过我想如果要不换行,只能是TH中再套table,分两个TD实现了,有时间我去改改。楼主有更简单的方法也请辞教。

再次感谢楼主,
你真可爱!
2 楼 glacier3 2008-07-12  
你太强了!我写了一天都没有搞出来!
1 楼 reston 2008-05-06  
能看效果就好了

相关推荐

    JS可调整列宽表格

    在创建可调整列宽的表格时,我们需要为每个 `<th>` 或 `<td>` 添加一个拖动柄(通常是一个CSS样式处理的小竖线),用户可以通过拖动这个柄来改变列宽。 在"moveTab.js"中,我们可能会看到以下关键代码片段: 1. **...

    可调整列宽TABLE

    在网页设计中,"可调整列宽TABLE"是一种常见的交互式数据展示技术,它使得用户可以根据需要自由调整表格中列的宽度。这种功能通常应用于数据量大、信息丰富的表格,以便用户能更清晰地查看和理解数据。下面将详细...

    完整版高级表格自动调整列宽例程.rar

    在IT领域,尤其是在数据分析、报表制作以及电子表格处理中,自动调整列宽是一项非常实用的功能。这个"完整版高级表格自动调整列宽例程"很可能包含了一套详细的代码或者脚本,旨在帮助用户高效地管理和优化表格的显示...

    LabVIEW表格列宽自动调节.rar

    为此,我们可以编写代码来动态调整列宽。 1. **编程接口(API)**: - 使用`Get Table Column Properties`函数获取表格的列属性,包括当前的列宽。 - 使用`Set Table Column Properties`函数设置新的列宽。根据...

    html表格table调整列宽的例子

    这样,用户就可以根据需要自由调整列宽,而无需开发者编写复杂的事件处理代码。 在实际应用中,ZTable可能还提供了一些其他配置选项或扩展功能,例如设置默认列宽、最小/最大列宽限制、响应式设计等。要了解更多...

    易语言高级表格自动调整列宽源码

    例如,当表格数据发生变化时,可以监听相关事件并重新计算和调整列宽,确保始终提供最佳的显示效果。 总之,易语言高级表格自动调整列宽源码是易语言编程中一个实用的技巧,它涉及到了数据处理、控件操作和用户界面...

    ListView 自动调整列宽

    在`Form1`类的`OnLoad`事件处理程序中,我们可以使用`ColumnHeaderAutoResizeStyle.ColumnContent`来自动调整列宽,代码示例如下: ```csharp // 方法一: listViewTemp.AutoResizeColumns...

    易语言高级表格自动调整列宽

    易语言高级表格自动调整列宽源码,高级表格自动调整列宽

    DataGrid可调整列宽的表格可排序

    本主题将深入探讨“DataGrid可调整列宽的表格可排序”这一特性,以及与之相关的技术点。 首先,`DataGrid` 是一种网格布局控件,广泛应用于Windows Forms、WPF、ASP.NET、Xamarin.Forms等多个平台。它允许程序员以...

    易语言源码高级表格自动调整列宽例程.rar

    易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar ...

    JS表格排序,筛选列,调整列宽

    本文将深入探讨如何实现表格的排序、筛选列以及调整列宽的功能,这些都是提高用户交互性和数据可读性的重要手段。 首先,让我们了解表格的基础。在HTML中,`<table>`元素用于创建表格,`<tr>`表示行,`<td>`或`<th>...

    LabView图形化编程语言之表格列宽自动调节.zip

    自动调节列宽的功能在处理不同长度或宽度的数据时尤为实用,它可以根据数据的实际内容自动调整列宽,使得数据能够完全显示,同时保持界面整洁美观。 实现这一功能通常涉及到以下几个步骤: 1. **创建表格**:首先...

    Qt 自定义Tableview,根据内容调整列宽

    自定义QTableView以根据内容动态调整列宽是一项实用功能,可以提高用户体验,确保所有数据显示完整,避免了用户手动调整列宽的不便。本文将详细讲解如何实现这一功能。 首先,我们需要理解QTableView的基本结构和...

    易语言自动调整列宽

    易语言自动调整列宽,超级列表框列宽自动调整

    鼠标拖动调整table列宽实例

    实例中的DEMO页面会展示一个已经实现了拖动调整列宽功能的表格,用户可以通过鼠标左键点击列边框并拖动来改变列的宽度。这个功能的实现通常包括以下几个步骤: 1. **选择元素**:使用`document.querySelector`或`...

    JavaScript实现:冻结列、调整列宽

    数据表格的可读性和交互性是非常重要的,我们可以通过调整列宽、冻结列和客户端排序等功能来提高数据表格的可读性和交互性。 本文介绍了使用 JavaScript 实现冻结列、调整列宽和客户端排序的技术,并提供了多种知识...

    wps表格中怎样调整列宽和行高?.docx

    WPS 表格调整列宽和行高方法详解 WPS 表格是一款功能强大且实用的办公软件,在使用 WPS 表格时经常需要调整列宽和行高以适应不同的需求和场景。 Adjusting column width and row height in WPS tables is a common ...

Global site tag (gtag.js) - Google Analytics