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 類別(如果您的 CSS 框架中 responsive 已有其他含義,則使用 dt-responsive,例如在 Bootstrap 中)新增到您的 table 中,當您建立 DataTable 時,響應式功能將自動初始化。

除了類別初始化之外,您還可以將 responsive 選項新增到您的 DataTable 設定物件。例如

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

就是這樣!

您可能還希望將 nowrap 類別新增到您的 DataTable,這將停止瀏覽器將儲存格中的文字重新排列為多行(DataTables 樣式表提供的功能),並且還有許多選項可用於設定響應式功能的行為,如果您願意的話。

功能

預設設定和功能集有意設計得相當基本,目的是讓您開發人員在使用響應式功能時以及最終使用者在使用啟用響應式功能的表格時,都能簡單易用。但是,響應式功能提供了設定選項,可自訂其操作的幾乎每個方面

以上內容以及更多內容,都在本網站的響應式功能手冊頁面中有說明。還包括

  • 範例 - 顯示如何自訂響應式功能的各個方面。
  • 參考 - 每個設定選項的詳細文件。

值得注意的是,響應式功能需要 DataTables 1.10.1 或更新版本(可從下載頁面取得)。此外,儘管這更像是一個內部實現點,但響應式功能是第一個使用新的 DataTables 1.10 文件樣式建構的 DataTables 擴充功能,因此響應式功能的參考將始終清晰、呈現良好並與 DataTables 緊密整合。其他擴充功能也將在未來更新為這種較新的樣式。

範例

下表顯示了在表格上使用響應式功能的範例。調整瀏覽器視窗的大小,以查看它如何自動調整表格佈局以適應瀏覽器大小。

姓名職位辦公室年齡開始日期薪資
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
姓名職位辦公室年齡開始日期薪資

討論

如同所有其他 DataTables 軟體一樣,我們始終熱烈歡迎對響應式功能的意見回饋。如果您對響應式功能有任何疑問,請在論壇中開啟新的討論串,並描述您遇到的問題或疑問。

註腳

[1] Bootstrap 確實有響應式表格,它允許表格水平捲動,而不是像 DataTables 的響應式功能那樣重新排列佈局。