2014 年 7 月 16 日星期三

为 DataTables 推出自适应性

构建现代网站时,你通常会使用 自适应设计。这样做的好处显而易见;一个网站在所有屏幕尺寸的设备上都能使用,这意味着极大地降低了维护成本并提升了客户体验。更好的方法是将自适应设计内置在大多数现成 CSS 框架中,如 BootstrapFoundation,这样就可以用最低的开发工作量获得好处。

虽然框架在自适应内容布局方面做得很好,但它们并不能很好地处理自适应表格 [1]。这时就需要用到 DataTables 的自适应性了 - 它使用 DataTables 内置的列可见性 API,为表格的屏幕尺寸优化其布局。表格就是以该尺寸显示的。

背景

2011 年,Chris Coyier 为 CSS-Tricks 撰写了一篇文章,描述 自适应数据表格。然后,他在 2012 年写了一篇 跟进文章,展示了可用于制作自适应表格的多种不同技术。

除了 Chris Coyier 的原始实施,还有多种优秀的 JavaScript 库示例,实现自适应表格,例如由 themergency.com 开发的 FooTable,以及 Zrub 的 自适应表格

因此,自适应表格的想法并不是新的,但 DataTables 的自适应性是第一个为 DataTables 实现这一概念的库,它让你能够构建 DataTables 和其他扩展的所有其他功能,现在还可以从自适应表格中获益。

使用自适应性

DataTables 的自适应性设计得尽可能简单易用。首先,你需要包含自适应 CSS 和 JavaScript,你可以通过 下载自适应包 或使用 DataTables CDN 上的文件来获取。

CSS
JS

然后,只需将 responsive 类(或者如果 responsive 在你的 CSS 框架中已经表示了某种含义,例如在 Bootstrap 中,则为 dt-responsive)添加到你的 table 中,在创建 DataTable 时,自适应性就会自动初始化。

除了类初始化外,你还可以将 responsive 选项添加到 DataTable 配置对象。例如

$('#myTable').DataTable( {
    responsive: true
} );

就是这样!

你可能还想将 nowrap 类添加到你的 DataTable 中,它将阻止浏览器将单元格中的文本重排为多行(DataTables 样式表 提供的功能),而且你可以使用一系列选项来 配置自适应的行为(如果你愿意的话)。

功能

Responsive 已专为 Easy UI 开发人员和使用启用了 Responsive 的表面的终端用户设计,默认设置和功能集都非常基础。但是,Responsive 提供配置选项,允许用户定制其操作的几乎所有方面

  • 不符合可用区域的列会自动移除
  • 可使用类来指定在特定设备上应显示哪些列
  • 可使用 DataTables 的子行 API 功能来显示隐藏列的数据
  • 可使用您的渲染程序禁用或定制子行功能 (responsive.details.renderer)
  • 可定制子行的显示激活 (responsive.details.type)

上方内容和更多内容都可在该网站的 Responsive 手册页 中找到。其中还包括:

  • 示例 - 展示 Responsive 如何定制的不同方面
  • 参考 - 对每个配置选项进行详细说明

值得注意的是,Responsive 需要 DataTables 1.10.1 或更高版本 (可在 下载页 上获取)。此外,尽管这是内部实现要点,但 Responsive 是使用新的 DataTables 1.10 文档样式构建的第一个 DataTables 扩展程序,因此 Responsive 的参考信息总是清晰、易于理解并与 DataTables 紧密集成。其他扩展程序在未来也将更新为这种更新的样式

示例

下表展示了在表上使用 Responsive 的示例。调整浏览器窗口大小以查看表布局对浏览器大小的自动调整方式

姓名职位办公地点年龄入职日期薪水
Tiger Nixon系统架构师爱丁堡612011-04-25$320,800
Garrett Winters会计东京632011-07-25$170,750
Ashton Cox初级技术作者旧金山662009-01-12$86,000
Cedric Kelly高级 Javascript 开发人员爱丁堡222012-03-29$433,060
Airi Satou会计东京332008-11-28$162,700
Brielle Williamson集成专家纽约612012-12-02$372,000
Herrod Chandler销售助理旧金山592012-08-06$137,500
Rhona Davidson集成专家东京552010-10-14$327,900
Colleen HurstJavascript 开发人员旧金山392009-09-15$205,500
Sonya Frost软件工程师爱丁堡232008-12-13$103,600
Jena Gaines办公室经理伦敦302008-12-19$90,560
Quinn Flynn支持负责人爱丁堡222013-03-03$342,000
Charde Marshall地区总监旧金山362008-10-16$470,600
Haley Kennedy高级营销设计师伦敦432012-12-18$313,500
Tatyana Fitzpatrick地区总监伦敦192010-03-17$385,750
Michael Silva营销设计师伦敦662012-11-27$198,500
Paul Byrd首席财务官 (CFO)纽约642010-06-09$725,000
Gloria Little系统管理员纽约592009-04-10$237,500
Bradley Greer软件工程师伦敦412012-10-13$132,000
Dai Rios人事负责人爱丁堡352012-09-26$217,500
Jenette Caldwell发展负责人纽约302011-09-03$345,000
Yuri Berry首席营销官 (CMO)纽约402009-06-25$675,000
Caesar Vance售前支持纽约212011-12-12$106,450
Doris Wilder销售助理悉尼232010-09-20$85,600
Angelica Ramos首席执行官 (CEO)伦敦472009-10-09$1,200,000
Gavin Joyce开发人员爱丁堡422010-12-22$92,575
Jennifer Chang地区总监新加坡282010-11-14$357,650
Brenden Wagner软件工程师旧金山282011-06-07$206,850
Fiona Green首席运营官 (COO)旧金山482010-03-11$850,000
Shou Itou地区营销东京202011-08-14$163,000
Michelle House集成专家悉尼372011-06-02$95,400
Suki Burks开发人员伦敦532009-10-22$114,500
Prescott Bartlett技术作者伦敦272011-05-07$145,000
Gavin Cortez团队负责人旧金山222008-10-26$235,500
Martena Mccray售后支持爱丁堡462011-03-09$324,050
Unity Butler营销设计师旧金山472009-12-09$85,675
Howard Hatfield办公室经理旧金山512008-12-16$164,500
Hope Fuentes秘书旧金山412010-02-12$109,850
Vivian Harrell财务主管旧金山622009-02-14$452,500
Timothy Mooney办公室经理伦敦372008-12-11$136,200
Jackson Bradshaw主管纽约652008-09-26$645,750
Olivia Liang支持工程师新加坡642011-02-03$234,500
Bruno Nash软件工程师伦敦382011-05-03$163,500
Sakura Yamamoto支持工程师东京372009-08-19$139,575
Thor Walton开发人员纽约612013-08-11$98,540
Finn Camacho支持工程师旧金山472009-07-07$87,500
Serge Baldwin数据协调员新加坡642012-04-09$138,575
Zenaida Frank软件工程师纽约632010-01-04$125,250
Zorita Serrano软件工程师旧金山562012-06-01$115,000
Jennifer Acosta初级 JavaScript 开发人员爱丁堡432013-02-01$75,650
Cara Stevens销售助理纽约462011-12-06$145,600
Hermione Butler地区总监伦敦472011-03-21$356,250
Lael Greer系统管理员伦敦212009-02-27$103,500
Jonas Alexander开发人员旧金山302010-07-14$86,500
Shad Decker地区总监爱丁堡512008-11-13$183,000
Michael BruceJavascript 开发人员新加坡292011-06-27$183,000
Donna Snider客户支持纽约272011-01-25$112,000
姓名职位办公地点年龄入职日期薪水

讨论

我们始终欢迎关于 Responsive(以及所有 DataTables 软件)的反馈。如果您对 Responsive 有任何疑问,请 在论坛中开一个新话题 并描述您遇到的问题或疑问。

脚注

[1] Bootstrap 的确有 响应式表格,该表格可以让表格水平滚动,而不是像 Responsive 为 DataTables 所做的那样重新设置布局。