長篇干貨文章——表格的基本認識

2022-7-27    資深UI設計者

1.1 表格是什么,為什么重要



表格已經是現(xiàn)代電子計算機系統(tǒng)中重要的組成部分之一,從小學開始,我們就已經在電腦課上學習如何使用 Office Excel 來制作電子表格。

那么我們?yōu)槭裁葱枰褂帽砀衲兀恳驗槲覀冇杏涗浐筒樵償祿男枨蟆?


在任何商業(yè)活動中,都會產生大量的數據信息,雖然我們發(fā)明了 SQL、Mysql 等數據庫語言記錄數據,但最原始的數據記錄是沒有可讀性的。

所以,為了讓數據可以更好的展示,我們就必須借助可視性更強的圖形工具,即電子表格。通過 X、Y 軸構建的網格系統(tǒng),將數據有序、清晰得羅列出來。

 

表格的重要性就體現(xiàn)在企業(yè)日常工作中對這些數據進行管理的需求和頻次上。

 

例如為電商 APP 開發(fā)了一套管理系統(tǒng),那么電商運營每天的工作,都要繞著其中銷售、物流、流水等重要模塊的數據打轉,也就是圍繞著表格展開工作。

對于多數管理系統(tǒng)而言,數據查詢、管理都是非常重要且高頻使用的功能,所以常規(guī)項目中會包含大量的表格頁面。

 

甚至,有的中小型項目的所有導航一級頁面,只有表格,而不存在其它頁面形式。所以,表格的優(yōu)劣對用戶工作效率和平臺體驗可以產生決定性的影響。

 

而優(yōu)秀的 B 端項目表格又不能只像 Excel 一樣可以使用固定的模版,不同項目、頁面、模塊對表格的可視需求天差地別,需要根據具體情況具體分析。

 

所以,這也是 B 端設計師的價值之一。一個優(yōu)秀的 B 端設計師勢必投入大量精力來提升對表格的認識和表格設計能力。



1.2 表格的主要構成模塊


表格雖然細節(jié)設計上千差萬別,但在表現(xiàn)形式和閱讀順序上卻是基本一致的。

 

常規(guī)的表格必然包含表頭欄、列表、翻頁器三個部分,根據需求的不同,可能還會增加搜索欄、多選欄、操作欄等常見模塊。


1.2.1 搜索欄


主要是用來進行簡單的數據搜索和篩選的,當搜索項較少的時候,就可以將搜索結合到表格組件內。而搜索項較多時,則會把它們獨立成一個篩選模塊到表格組件的上方。


1.2.2 表頭欄


每個表頭代表一個對象的屬性,決定了下方每行對象要顯示的數據類型數量。

 

通常,表頭的設計會和下方列表設計有一定的區(qū)分,表頭文字有一定的標題屬性,所以會通過背景色、分割線、文字加粗來增強對比。


1.2.3 列表


列表則是縱向排列數據對象的模塊。每個數據對象占一行,行的高度根據內容來制定。橫向列表高度和縱向表頭寬度重疊的區(qū)域稱為單元格,每個單元格展示表頭對應的數據明細。

 

常規(guī) B 端項目表格都會限制列表一次展示的行數,極少使用無限滾動加載的模式。因為當數據包含成千上萬條時會對本地、服務器性能和交互方式帶來一系列的負面影響。


1.2.4 多選和操作欄


如果數據對象支持多選和批量操作,則我們會在第一列中添加選框,并將選中后的可操作選項放進操作欄中。


1.2.5 翻頁器


翻頁器是切換列表頁面的控件。通常大數據量的列表包含上千頁,所以翻頁器只會顯示開頭幾頁和最后一頁,省略中間的,并增加適合快速跳轉的功能。

除了表頭和列表內容外,其它模塊內容都根據實際需求應用。任何表格設計的第一步都是制定大框架,即包含的模塊和對應分布位置,再展開后續(xù)的細節(jié)設計。


B 端項目支持響應式是今天行業(yè)的普遍需求,也就是頁面內容隨著瀏覽器視圖寬度變更而變更。

不同頁面類型的響應式邏輯各不相同,而表格是其中邏輯最復雜,也最難理解的一種。


表格響應式規(guī)則通常在確定好框架以后制定,優(yōu)于視覺、交互設計,因為它對視覺和交互產生的影響非常大,是前置條件而不是通過設計稿逆推出來的。


表格的響應式規(guī)則比較細碎,我根據下面的順序展開解釋:

- 表格的總寬響應

- 表格的最小寬度

- 單元格的響應邏輯

- 內容的響應邏輯



2.1 表格的總寬響應


表格的響應主要是寬度上的響應,整個表格的寬度區(qū)域隨父集元素的放大而放大。比如父級元素左右內邊距為 20px,則表格整體寬度保持和父級 20px 的左右間距。



2.2 表格的最小寬度


上方邏輯中表格可以無限延長,但它卻不能無限的縮短,因為你不可能做一個只有 10px,20px 寬的表格。


過窄的表格不僅支持不了內容的正常顯示,也毫無任何使用體驗,所以我們要為表格確定一個最小的寬度。即瀏覽器視圖即使比這個寬度更小,表格也不會再縮小了。


最小的寬度可以結合前端柵格系統(tǒng)使用的 Breakpoint 規(guī)則來制定,如 Ant deisgn 中 SM:576px,或 MD:768px。 

如果不了解柵格的段落規(guī)則,也可以 “憑感覺” 定,最小表格寬度通常在 560-640px,當然,不管怎么定一定要提前和前端溝通,確定尺寸方案。


當表格內容少的時候,最小寬度只是相對較大寬度窄了一點而已。而當表格內容過多,最小寬度無論如何也不夠放的情況,那么就會使用橫向滾動的交互形式來隱藏超出內容。


2.3 單元格的響應邏輯


單元格響應這是整個表格最復雜的一環(huán),橫向內容會超出最小寬度的情況,就是由單元格規(guī)則決定的。

 

首先,單元格本身也有最小寬度,原因和前面一樣,1px、10px 寬的單元格沒有存在的意義。所以可以根據需要,制定多個等級的最小單元格寬度,應用在不同的數據類型中。

假設表格中包含了 20 個表頭,分別使用了 10 個最小 24px 和 10 個最小 80 px 的,那么單元格的總寬最小就是 240+800 = 1040px。

 

所以當父級整個表格視圖小于 1040px 的時候,內容就會不夠顯示從而觸發(fā)左右滾動的條件。 

當上級表格寬度大于單元格最小總和時,那么單元格也就會隨之變寬。最簡單的響應邏輯,就是為單元格寬設置百分比。比如 5 個單元格分別是父級寬度的 10%、10%、10%、20%、30%、20% ,那么在父級 1000px 的時候它們分別是 100px、100px、100px、200px、300px、200px。

 

只要確保百分比的總和是 100%,不管你單元格是比例均分(5個單元格等分各20%寬),還是獨立制定(上面案例),單元格寬都是等比縮放的狀態(tài)。

 

雖然好理解,但這種初級的做法帶來的問題也很多,那就是部分單元格沒有被 ”放大“ 的需求。比如常出現(xiàn)在第一列的多選框,或者部分標簽單元格、固定操作按鈕單元格。

 

于是,為了預留給有需要的單元格更多的空間,提升體驗,就會對這些單元格實施定寬的方式,剩下的單元格繼續(xù)使用等比,只是計算的方法要減去定寬元素。

 

比如還是一個占比 20% 的單元格,在包含 2 個 48px 定寬單元格的 1000px 表格中,實際寬為:

 

(1000px - 2*48) * 20% = 180px


2.4 內容的響應邏輯


作為單元格的子級,內容也可以獨立定義響應的規(guī)則。主要包含 3 種情況:

 

- 無響應

- 隱藏多余

- 換行顯示

 

無響應就是顯示的內容是固定的,比如多選框、縮略圖、單按鈕等單元格內容,它們沒有大小變動的必要。 

隱藏多余,則是主要應用在文本內容上,當單元格寬度小于當前文本所需寬度時,就會把多余的文字進行省略,這種做法適合應用在一些原本就不是太重要的信息上。

 

比如原本是 ”上海徐家匯南丹路天主教堂一樓“ 變成 ”上海徐家匯南丹路天…“,之后再通過鼠標懸浮彈出文字氣泡框的方式顯示所有文本。

而換行顯示,則是文本或多標簽狀態(tài)下,一行不夠顯示就換行的做法。除非一開始單行行高預留了多行顯示的高度,否則多行內容就會撐高單元格。

以上就是表格在響應式模式下相關知識點。

 

隨著經驗的積累,實戰(zhàn)經驗豐富的 B 端設計師,就會在前期的規(guī)范環(huán)節(jié)制定出完整的表格響應邏輯,應用到前端框架開發(fā)和后續(xù)的設計,而不是做到哪定到哪。



3.1 表格框架的操作


表格首先是一個展示信息的組件,而單純依靠布局和排版技巧,并不能解決所有的信息展示問題。所以,針對網頁表格的局限性,我們要添加一些交互的細節(jié)來提升使用體驗。

 

例如,單頁表格數據量較大,有好幾屏高,往下滾動后看不見表頭,不能很好的識別單元格內容。

 

或者,表頭屬性數量較多,需要左右滾動,但是每行數據要不然操作欄目看不見,要不然對應 ID 被滑走了等等。

 

所以,表格的框架就可以做懸浮固定的模式,將需要被持續(xù)露出的欄目懸浮固定。



表格的默認狀態(tài)


表頭懸浮效果


右側操作列懸浮


左側ID列目懸浮


操作欄懸浮效果

當然,除了單獨欄目的懸浮,也可以使用混合模式,比如表頭吸頂的同時固定右側的操作欄。盡量將固定元素控制在 3 個以內,以免懸浮要素太多影響內容的瀏覽。

還要注意,除了筆記本觸摸板和少數鼠標,一般用戶是沒有頁面左右滾動滾輪的,所以當表格出現(xiàn)左右滾動情況以后,就一定要默認展示進度條,方便用戶操作。


3.2 表格表頭的操作


第二步,就是和表頭相關的操作了。我們都知道常規(guī)表格頁面中,表格上方還會有個篩選區(qū)域,專門用來進行篩選相關的條件制定。 
但是,部分項目需求中,會將篩選的功能整合到表頭欄目內,而很多新手甚至不能有效的區(qū)分篩選和排序的差異。

我們先對這兩者做一個明確的定義:


篩選 Filter:對要顯示的內容設置篩選條件,不符合條件的將會被過濾隱藏


排序 Sort:對已有內容的顯示順序進行條件設置,不會有內容被過濾或隱藏


這看起來好像很容易理解,但會搞混的地方就在排序的應用上。我們常規(guī)以為的排序,就像電腦文件夾列表一樣,通過點擊表頭來決定內容通過哪個屬性來進行升序或者降序。

  

在這種 “樸素” 的設定中,篩選是以單個表頭屬性為標準的,有唯一性。比如在學生數據表格中,可以以 ID、姓名、年級、年齡或成績單個屬性進行列表排序,選中其中一個屬性其它屬性的排序就被取消了。

 

但是復雜的排序并不是 “唯一屬性” 的,而是多個屬性的并集,以及具備優(yōu)先級和排序模式。還用學生數據表格舉例:

 

優(yōu)先根據年齡降序排列,同年齡下根據班級升序排列,同班級再根據成績降序排列。

 

這里面疊加了三個屬性,年齡優(yōu)先級最好,然后班級次要,成績最后,我們用圖表的展示可以實現(xiàn)出下面這樣的形式:

再進一步,這是我們條件已經確定才做出來的組件,要是要制定的屬性不確定,要制定的屬性數量也不確定,順序不確定,排序模式也不確定……

 

這種情況就肯定要應用排序自定義條件的邏輯了,而表頭自定義一加,那邏輯就立馬復雜了,它的操作面板可能就長下圖這樣。

排序復雜了,并不代表篩選就不要了。部分項目的篩選除了在表格外的獨立篩選區(qū)域,還可能應用表頭篩選模式。即以單個表頭緯度設置篩選條件,比如點擊 “年份” 表頭,設置起始和結束時間。

 

所以,只包含篩選的情況下,表頭的圖標就不是排序而是漏斗,點擊后就要展開篩選設置面板進行操作。 

而當多表頭篩選和多表頭排序需求并存的時候,怎么解決?

 

這里只建議在表頭中留存篩選選項,因為篩選可以實現(xiàn)并集關系,即前后任何表頭添加篩選項都可以組成完整的篩選條件。但是,這種交互難以完成篩選優(yōu)先級排序。

 

所以,我們要將排序獨立成一個按鈕到表頭之外的地方,而不是強行讓兩者并存。尤其是不要設計出有的表頭是排序,有的表頭是篩選,甚至表頭的按鈕展開面板里又會有篩選又有排序……


表頭是針對列的操作,而針對行的操作,就是對單行列表的選擇、展開和進入了。

 

前面我們有說過,表格第一列往往放多選框,通過點擊選擇當前列表行。它本身的交互并沒有太多需要注意的,只要針對行的交互如果不止選擇應該如何平衡。

 

部分復雜項目喜歡在表格中添加 “套娃” 的需求。即單行數據可以向下展開二級數據,或者更進一步到三級、四級。 

同時,每個數據行往往還關聯(lián)詳情頁面,需要點擊展開后查看更細節(jié)的信息。 

所以當多種操作需求混合出現(xiàn)的時候,我們就要具體分析這些需求的優(yōu)先級了。到底是多選操作頻率最高,還是查看下級行,打開詳情頁。

 

這是為讓點擊整個數據行這個最便捷的交互可以關聯(lián)到最高頻的操作上。而其它低頻操作的交互則只限定在對應的按鈕或圖標上即可。

因為多選需求往往需要我們在一系列數據中選擇很多條數據,一個小小的復選框不僅選擇起來麻煩,且通過查看右側的內容篩選數據行,再用右手握鼠標按需點擊最左側的多選框,是非常別扭的體驗。

 

還有一個需要注意的細節(jié),就是當多選和展開下級列表共同出現(xiàn)的時候,選框和展開圖標的排列。

 

通常一個數據行第一列的內容,應該是整行邏輯層級最高的元素。如果子數據行是被獨立出來需要單選,那么展開圖標就要放到選擇前面。如果選擇數據包含了該行和所有子行,那么選擇就應該在展開圖標前面。 

當然,如果展開數據和父集就完全不是一種類型,用另一套屬性,那么它也就沒有被同時選中的需求和可能,不需要為它添加選擇框。所以,這種情況下多選框也應該放在第一位。

最后,就是解決單元格的交互了。常見的單元格交互可以總結成下面這幾類:


- 點擊打開頁面

- 點擊復制內容

- 點擊修改內容

- 懸浮提示說明


點擊打開頁面很好理解,比如單元格內的數據是鏈接、圖片、按鈕然后實現(xiàn)跳轉或彈窗。


而復制內容,則有一些需要注意的細節(jié)。表格中有一些數據是沒有實際閱讀意義的,它的存在就是用來做特定的校對或者是復制出去,比如 ID 號、哈希值、訂單號等。


常規(guī)的做法是直接在右側添加一個復制圖標,但對于一些偏復雜的表格來說,所有可復制的單元格都加復制圖標是非常影響瀏覽體驗的。


所以,我的建議是都是默認隱藏復制圖標,只有當鼠標移動到對應單元格的時候會顯示。同時,這個圖標可以覆蓋到數據上層,因為既然鼠標移動過來為了復制,那么數據被遮擋在這階段自然無關緊要,為整體頁面預留空間

這樣的操作按鈕隱藏浮現(xiàn)方式,也適用于單元格修改的操作。但是,和復制不同,單元格信息編輯通常是編輯文本信息,還有后續(xù)的操作步驟。

 

如果點擊進行文本編輯,那么建議在該表格打開一個新的輸入浮窗,且浮窗內輸入框文本和原來文本位置持平實現(xiàn)順暢的步驟轉換。

 

同時建議,為了防止誤操作,盡量增加確定、取消按鈕,防止誤操作覆蓋原有數據且無法撤銷。

最后就是單元格的懸浮提示了。B 端控件中的氣泡框就是用來做提示的控件,但它只是手段。為什么需要懸浮提示,提示什么內容是我們需要考慮的。

 

對于及其復雜的表格來說,往往是沒辦法支持所有數據都完整展示的,我們會在使用省略號對它進行截斷。但截斷不意味著用戶完全不需要在表格查看到完整的信息。

 

所以,就可以通過氣泡的做法,將信息呈現(xiàn)給用戶。而呈現(xiàn)過程中,盡量確保鼠標可以移動到氣泡上復制里面的文字內容(和全部復制不一樣),而不是鼠標移走就直接關閉消失。

熟練運營這幾個交互方式,并統(tǒng)一對應的使用規(guī)則,就能確保整個項目的表格單元格操作預期的一致,不需要逐一進行嘗試和鑒別。

以上就是關于表格設計的全部說明了,作為 B 端設計最重要的模塊之一,希望大家可以學以致用。

藍藍設計建立了UI設計分享群,每天會分享國內外的一些優(yōu)秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~
希望得到建議咨詢、商務合作,也請與我們聯(lián)系。 

作者:酸梅干超人    來源:站酷

分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯(lián)系,我們立即更正或刪除。 

藍藍設計m.bouu.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務、
UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司


日歷

鏈接

個人資料

藍藍設計的小編 http://m.bouu.cn

存檔