Javascript 如何创建具有可调整列的HTML表?

Javascript 如何创建具有可调整列的HTML表?,javascript,html,css,adjustable,Javascript,Html,Css,Adjustable,我想知道如何创建一个可以调整列宽的表。我还没有弄明白怎么做。如果你知道这项技术的秘诀,请告诉我。我相信这很简单,只要在单元格标题边缘的某个区域捕获鼠标单击事件,然后在拖动鼠标时动态更改列的宽度。Yahoo UI(YUI)小部件允许调整列的大小。它是公开的,但仍处于测试阶段,而且YUI库相当庞大。任何实现都必须使用JavaScript/DHTML,因为默认的HTML表不具备这种功能。您是在寻找outlook的效果,还是会出现一些新功能来显示调整表的大小 我所做的就是创建一个div或一个只有几个像

我想知道如何创建一个可以调整列宽的表。我还没有弄明白怎么做。如果你知道这项技术的秘诀,请告诉我。

我相信这很简单,只要在单元格标题边缘的某个区域捕获鼠标单击事件,然后在拖动鼠标时动态更改列的宽度。

Yahoo UI(YUI)小部件允许调整列的大小。它是公开的,但仍处于测试阶段,而且YUI库相当庞大。任何实现都必须使用JavaScript/DHTML,因为默认的HTML表不具备这种功能。

您是在寻找outlook的效果,还是会出现一些新功能来显示调整表的大小

  • 我所做的就是创建一个div或一个只有几个像素宽的单元格
  • 我将光标更改为箭头
  • 单击该div控件上的use
  • 单击该div控件上的use,我会动态创建另一个“floating”div,显示最终将放置它的位置
  • 该移动连接到JavaScript上的鼠标移动事件
  • 释放控件后,我将根据移动新控件的位置重新定位表格单元格的高度或宽度

    • 没有简单的答案,比如“使用一些foobarhtml属性”。 这是通过javascript和DOM操作完成的
      如果您想在Prototype中看到此功能的实现,可以看一看。
      我肯定有jQuery实现。。。我喜欢我的老原型;)

      对于jQuery来说,这似乎很甜蜜

      更新:根据@Vincent的评论,使用非常简单。。。有关完整的详细信息,请参阅网站,但最基本的示例是:包含脚本,然后将功能挂接到表中:

      $('#myTableID').flexigrid();
      
      或选择:

      $('.classOfTables').flexigrid({height:'auto',striped:false});
      

      添加此CSS以使表的列宽可调

       th {resize:horizontal; overflow:auto;}
      

      resize:horizontal
      应用于
      对我的FF58不起作用。相反,我在它们中创建了一个
      ,并使其可调整大小:

      .mytable th div{
          resize:horizontal;
          overflow: auto;
      }
      

      你知道,你可以在浏览器中查看页面源代码,它会告诉你,他们是如何做到的,不是吗?虽然我可以“看和服下面”,但我要求提问者解释答案。概念简单,实现复杂。我不知道为什么没有将其设置为所选答案,或者为什么没有更多投票,但这真的很有用。谢谢尽管此网格具有可调整的列宽,但它并没有回答如何在自定义表中实现此类功能的问题。Flexgrid在这一点上似乎非常缺乏维护。网站关闭了,github自2014年以来就没有更新过,等等。听起来很简单。纯金就在这里。。。