为 DataTables 推出自适应性
构建现代网站时,你通常会使用 自适应设计。这样做的好处显而易见;一个网站在所有屏幕尺寸的设备上都能使用,这意味着极大地降低了维护成本并提升了客户体验。更好的方法是将自适应设计内置在大多数现成 CSS 框架中,如 Bootstrap 和 Foundation,这样就可以用最低的开发工作量获得好处。
虽然框架在自适应内容布局方面做得很好,但它们并不能很好地处理自适应表格 [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 上的文件来获取。
然后,只需将 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 需要 DataTables 1.10.1 或更高版本 (可在 下载页 上获取)。此外,尽管这是内部实现要点,但 Responsive 是使用新的 DataTables 1.10 文档样式构建的第一个 DataTables 扩展程序,因此 Responsive 的参考信息总是清晰、易于理解并与 DataTables 紧密集成。其他扩展程序在未来也将更新为这种更新的样式
示例
下表展示了在表上使用 Responsive 的示例。调整浏览器窗口大小以查看表布局对浏览器大小的自动调整方式
姓名 | 职位 | 办公地点 | 年龄 | 入职日期 | 薪水 |
---|---|---|---|---|---|
Tiger Nixon | 系统架构师 | 爱丁堡 | 61 | 2011-04-25 | $320,800 |
Garrett Winters | 会计 | 东京 | 63 | 2011-07-25 | $170,750 |
Ashton Cox | 初级技术作者 | 旧金山 | 66 | 2009-01-12 | $86,000 |
Cedric Kelly | 高级 Javascript 开发人员 | 爱丁堡 | 22 | 2012-03-29 | $433,060 |
Airi Satou | 会计 | 东京 | 33 | 2008-11-28 | $162,700 |
Brielle Williamson | 集成专家 | 纽约 | 61 | 2012-12-02 | $372,000 |
Herrod Chandler | 销售助理 | 旧金山 | 59 | 2012-08-06 | $137,500 |
Rhona Davidson | 集成专家 | 东京 | 55 | 2010-10-14 | $327,900 |
Colleen Hurst | Javascript 开发人员 | 旧金山 | 39 | 2009-09-15 | $205,500 |
Sonya Frost | 软件工程师 | 爱丁堡 | 23 | 2008-12-13 | $103,600 |
Jena Gaines | 办公室经理 | 伦敦 | 30 | 2008-12-19 | $90,560 |
Quinn Flynn | 支持负责人 | 爱丁堡 | 22 | 2013-03-03 | $342,000 |
Charde Marshall | 地区总监 | 旧金山 | 36 | 2008-10-16 | $470,600 |
Haley Kennedy | 高级营销设计师 | 伦敦 | 43 | 2012-12-18 | $313,500 |
Tatyana Fitzpatrick | 地区总监 | 伦敦 | 19 | 2010-03-17 | $385,750 |
Michael Silva | 营销设计师 | 伦敦 | 66 | 2012-11-27 | $198,500 |
Paul Byrd | 首席财务官 (CFO) | 纽约 | 64 | 2010-06-09 | $725,000 |
Gloria Little | 系统管理员 | 纽约 | 59 | 2009-04-10 | $237,500 |
Bradley Greer | 软件工程师 | 伦敦 | 41 | 2012-10-13 | $132,000 |
Dai Rios | 人事负责人 | 爱丁堡 | 35 | 2012-09-26 | $217,500 |
Jenette Caldwell | 发展负责人 | 纽约 | 30 | 2011-09-03 | $345,000 |
Yuri Berry | 首席营销官 (CMO) | 纽约 | 40 | 2009-06-25 | $675,000 |
Caesar Vance | 售前支持 | 纽约 | 21 | 2011-12-12 | $106,450 |
Doris Wilder | 销售助理 | 悉尼 | 23 | 2010-09-20 | $85,600 |
Angelica Ramos | 首席执行官 (CEO) | 伦敦 | 47 | 2009-10-09 | $1,200,000 |
Gavin Joyce | 开发人员 | 爱丁堡 | 42 | 2010-12-22 | $92,575 |
Jennifer Chang | 地区总监 | 新加坡 | 28 | 2010-11-14 | $357,650 |
Brenden Wagner | 软件工程师 | 旧金山 | 28 | 2011-06-07 | $206,850 |
Fiona Green | 首席运营官 (COO) | 旧金山 | 48 | 2010-03-11 | $850,000 |
Shou Itou | 地区营销 | 东京 | 20 | 2011-08-14 | $163,000 |
Michelle House | 集成专家 | 悉尼 | 37 | 2011-06-02 | $95,400 |
Suki Burks | 开发人员 | 伦敦 | 53 | 2009-10-22 | $114,500 |
Prescott Bartlett | 技术作者 | 伦敦 | 27 | 2011-05-07 | $145,000 |
Gavin Cortez | 团队负责人 | 旧金山 | 22 | 2008-10-26 | $235,500 |
Martena Mccray | 售后支持 | 爱丁堡 | 46 | 2011-03-09 | $324,050 |
Unity Butler | 营销设计师 | 旧金山 | 47 | 2009-12-09 | $85,675 |
Howard Hatfield | 办公室经理 | 旧金山 | 51 | 2008-12-16 | $164,500 |
Hope Fuentes | 秘书 | 旧金山 | 41 | 2010-02-12 | $109,850 |
Vivian Harrell | 财务主管 | 旧金山 | 62 | 2009-02-14 | $452,500 |
Timothy Mooney | 办公室经理 | 伦敦 | 37 | 2008-12-11 | $136,200 |
Jackson Bradshaw | 主管 | 纽约 | 65 | 2008-09-26 | $645,750 |
Olivia Liang | 支持工程师 | 新加坡 | 64 | 2011-02-03 | $234,500 |
Bruno Nash | 软件工程师 | 伦敦 | 38 | 2011-05-03 | $163,500 |
Sakura Yamamoto | 支持工程师 | 东京 | 37 | 2009-08-19 | $139,575 |
Thor Walton | 开发人员 | 纽约 | 61 | 2013-08-11 | $98,540 |
Finn Camacho | 支持工程师 | 旧金山 | 47 | 2009-07-07 | $87,500 |
Serge Baldwin | 数据协调员 | 新加坡 | 64 | 2012-04-09 | $138,575 |
Zenaida Frank | 软件工程师 | 纽约 | 63 | 2010-01-04 | $125,250 |
Zorita Serrano | 软件工程师 | 旧金山 | 56 | 2012-06-01 | $115,000 |
Jennifer Acosta | 初级 JavaScript 开发人员 | 爱丁堡 | 43 | 2013-02-01 | $75,650 |
Cara Stevens | 销售助理 | 纽约 | 46 | 2011-12-06 | $145,600 |
Hermione Butler | 地区总监 | 伦敦 | 47 | 2011-03-21 | $356,250 |
Lael Greer | 系统管理员 | 伦敦 | 21 | 2009-02-27 | $103,500 |
Jonas Alexander | 开发人员 | 旧金山 | 30 | 2010-07-14 | $86,500 |
Shad Decker | 地区总监 | 爱丁堡 | 51 | 2008-11-13 | $183,000 |
Michael Bruce | Javascript 开发人员 | 新加坡 | 29 | 2011-06-27 | $183,000 |
Donna Snider | 客户支持 | 纽约 | 27 | 2011-01-25 | $112,000 |
姓名 | 职位 | 办公地点 | 年龄 | 入职日期 | 薪水 |
讨论
我们始终欢迎关于 Responsive(以及所有 DataTables 软件)的反馈。如果您对 Responsive 有任何疑问,请 在论坛中开一个新话题 并描述您遇到的问题或疑问。
脚注
[1] Bootstrap 的确有 响应式表格,该表格可以让表格水平滚动,而不是像 Responsive 为 DataTables 所做的那样重新设置布局。