วิธีการสร้างตารางเว็บที่ซับซ้อน

เผยแพร่แล้ว: 2022-03-10
สรุปอย่างรวดเร็ว ↬ ตารางมักปรากฏบนเว็บแต่ไม่ใช่เรื่องง่ายที่จะออกแบบและเขียนโค้ด คู่มือที่มีภาพประกอบนี้อธิบายกายวิภาคของตารางและวิธีสร้างตาราง โดยคำนึงถึงรายละเอียดเพิ่มเติมในอนาคต

ลองนึกภาพคุณออกแบบระบบสำหรับนักวิจัยข้อมูล หรือแอพพลิเคชั่นการจัดการพลังงาน หรือแดชบอร์ดสำหรับผู้ค้าข้าวโพด บางทีคุณอาจกำลังออกแบบอะไรแบบนั้นอยู่ตอนนี้ ในกรณีที่กล่าวมาทั้งหมด ผู้คนจะคาดหวังตาราง ไม่ใช่ของแฟนซีจากไซต์แรงบันดาลใจในการออกแบบ แต่เป็นสัตว์ประหลาดที่ดูเหมือน Excel ที่มีเซลล์นับร้อยและการโต้ตอบที่ซับซ้อน

ในกรณีนี้ นักออกแบบต้องเผชิญกับความท้าทายมากมาย ตัวอย่างเช่น การจับคู่การออกแบบกับเฟรมเวิร์กส่วนหน้าที่มีอยู่ หรือการดิ้นรนกับข้อมูลที่ "ไม่สะดวก" ที่ทำลายเลย์เอาต์ เราจะแก้ไขปัญหาเหล่านี้โดยทำตามขั้นตอนต่อไปนี้: จัดระบบความต้องการ ใช้อะตอมมิก และกำหนดปฏิสัมพันธ์

ตารางที่ดูทันสมัยพร้อมข้อมูลเพียงเล็กน้อยเทียบกับตารางที่ซับซ้อนที่วุ่นวาย
ความคาดหวังกับความเป็นจริง (ตัวอย่างขนาดใหญ่)

1. จัดระบบความต้องการ

ดังนั้น คุณได้สัมภาษณ์กลุ่มเป้าหมายและค้นหาความต้องการและความต้องการของพวกเขา ถึงเวลารวบรวมสิ่งที่ค้นพบและแปลงเป็นโครงสร้างอินเทอร์เฟซ ตัวอย่างเช่น ผู้ใช้รายหนึ่งกล่าวว่า "ฉันต้องดูว่าข้อมูลของฉันส่งผลต่อส่วนอื่นๆ ของแอปพลิเคชันอย่างไร" หรือในขณะที่ดูบุคคลอื่นทำงานกับซอฟต์แวร์เก่า คุณสังเกตเห็นว่าเขาใช้ทางลัดและไม่แตะเมาส์เลย มันหมายความว่าอะไร?

คำของผู้ใช้คนแรกเกี่ยวกับการตรวจสอบการป้อนข้อมูลและคำแนะนำ คุณจะต้องพิจารณาแนบข้อมูลการแจ้งเตือนหรือความช่วยเหลือลงในตาราง หรือพัฒนาระบบสีที่มีความหมาย ขึ้นอยู่กับโดเมนและแบบจำลองทางจิต การสังเกตการทำงานของผู้ใช้คนที่สองอาจเป็นสัญญาณบ่งบอกว่าคุณต้องออกแบบการทำงานทั้งหมดที่แป้นพิมพ์เข้าถึงได้ และคุณอาจต้องคิดเกี่ยวกับทางลัดที่ลึกซึ้งมากกว่าแค่ “ Cmd + C ” และ “ Cmd + V

นี่คือคู่สังเกตและสมมติฐานบางส่วน

  • ฉันต้องจัดการหลายสิบรายการพร้อมกันอย่างง่ายดาย
    อนุญาตให้เลือกหลายเซลล์หรือไม่ เพิ่มช่องทำเครื่องหมายเพื่อเลือกหลายแถว?
  • ตอนนี้เราทำการคำนวณทั้งหมดด้วยวิธี นี้” [ แสดง Microsoft Excel ]
    Excel มีประสิทธิภาพสำหรับจุดประสงค์นี้หรือไม่? เราสามารถยืมคุณสมบัติอะไรได้บ้าง?
  • เราขอทราบล่วงหน้าได้ไหมว่าชื่อนี้มีอยู่บนเซิร์ฟเวอร์ แล้ว”
    ตรวจสอบข้อมูลได้ทันที? ข้อความแสดงข้อผิดพลาดหรือการแก้ไขอัตโนมัติ?
  • โดยปกติฉันป้อนข้อมูลนี้ มันค่อนข้างธรรมดา
    แนะนำค่าเริ่มต้น ค่าเริ่มต้น หรือเทมเพลต?
เพิ่มเติมหลังกระโดด! อ่านต่อด้านล่าง↓

ด้วยเหตุนี้ คุณจะมีรายการความต้องการและความต้องการของผู้คน คำถามเปิดมีประโยชน์ในการค้นหาความต้องการที่แท้จริงและการกรองสิ่งแปลกปลอม:

“อะไรช่วยให้คุณทำงานได้เร็วขึ้น? อะไรทำให้การเลือกของคุณง่ายขึ้น คุณลักษณะนี้ส่งผลต่อประสิทธิภาพการทำงานของคุณอย่างไร? จะเกิดอะไรขึ้นถ้าคุณไม่สามารถทำ X ได้”

แล้วยังไงต่อ? ตอนนี้ได้เวลาสร้างโครงกระดูกเชิงตรรกะสำหรับตารางของคุณแล้ว แบบแผนของสิ่งที่มีและสามารถทำได้ หากคุณไปที่การวาดลวดหรือสร้างต้นแบบโดยตรง คุณจะก้าวเข้าสู่เส้นทางที่ชั่วร้ายของการวาดใหม่อย่างไม่มีที่สิ้นสุดและต่อสู้กับมรดกตกทอด

ด้านล่างนี้เป็นตัวอย่างของสิ่งที่คุณอาจเริ่มต้นด้วย เป็นต้นไม้แห่งคุณสมบัติ และหน่วยการสร้างพื้นฐานของตารางใดๆ ก็คือเซลล์ เซลล์จะรวมกันเป็นแถวและคอลัมน์ ซึ่งสามารถมีลักษณะเฉพาะที่แตกต่างจากเซลล์ที่แยกจากกัน และสุดท้าย เราไปที่ส่วนเสริมที่สำคัญของตาราง เช่น แถบด้านบนที่มีปุ่ม คำสั่งแป้นพิมพ์ และข้อผิดพลาดในการจัดการ

โครงสร้างแบบลำดับชั้นเหมือนต้นไม้ของส่วนประกอบตาราง
(ตัวอย่างขนาดใหญ่)

แผนผังของคุณสมบัติช่วยป้องกันไม่ให้คุณทำงานพิเศษและช่วยให้มีสมาธิกับสิ่งที่สำคัญ โครงสร้างคุณสมบัติที่ได้รับการจัดระเบียบอย่างดียังมีประโยชน์สำหรับทีมพัฒนาอีกด้วย พวกเขาสามารถจับคู่คุณลักษณะที่วางแผนไว้กับไลบรารีส่วนหน้าที่มีอยู่ และค้นหาวิธีที่ดีที่สุดในการเปลี่ยนการออกแบบให้เป็นโค้ด

ในโครงการหนึ่งของฉัน เราใช้กรอบงานวัสดุเชิงมุม น่าเสียดายที่ตารางเชิงมุมนั้นง่ายเกินไป เราพบไลบรารี ag-Grid ที่รองรับฟังก์ชันการทำงานของเรา แต่มีข้อจำกัดเพียงอย่างเดียว มันไม่มีความสามารถในการขยายแถวและวางแถวลูกไว้ข้างใน เราได้เปิดเผยปัญหานี้ก่อนที่เราจะพยายามแก้ไขและปรับปรุงการออกแบบ

โดยสังเขป

  • เริ่มสร้างตารางที่ซับซ้อนด้วยการรวบรวมและจัดลำดับความสำคัญความต้องการของผู้ใช้ พิจารณาวิธีแก้ปัญหาที่ไม่ใช่ตาราง เช่น แผนภูมิ
  • วาดแผนผังต้นไม้ที่จัดระบบคุณลักษณะที่จำเป็นทั้งหมด ใช้เป็นแผนสำหรับการผลิตภาพ

การอ่านที่แนะนำ : Table Design Patterns On The Web โดย Chen Hui Jing

2. ไปอะตอม

ดังนั้น ความต้องการและการทำงานจึงถูกกำหนด และคุณทราบถึงข้อจำกัดทางเทคนิค ได้เวลาจำลองตารางของคุณแล้ว โดยพื้นฐานแล้ว วิธีการแบบปรมาณูคือการออกแบบส่วนประกอบ UI ขนาดเล็กก่อนแล้วจึงประกอบชิ้นส่วนที่ใหญ่ขึ้น เราจะค่อยๆ ย้ายจากอนุภาคพื้นฐาน เช่น ฟอนต์และสี ไปเป็นโมดูลขนาดใหญ่ เช่น ส่วนหัวหรือคอลัมน์ ฉันจงใจเลือกรูปแบบที่เข้มงวดสำหรับการจำลองเพื่อให้เราสามารถมุ่งเน้นไปที่การทำงานไม่ใช่รูปลักษณ์

แบบอักษร, สี, ไอคอน

ส่วนเหล่านี้สามารถกำหนดได้แล้วโดยระบบการออกแบบหรือเฟรมเวิร์ก UI ที่คุณใช้ หากคุณสร้างตารางสำหรับผลิตภัณฑ์ที่มีอยู่ ให้ตรวจสอบว่าจานสี แบบอักษร และไอคอนของสินค้านั้นตรงตามความต้องการของตารางหรือไม่ ในภาพด้านล่าง ฉันแสดงเฉดสีเทาบางส่วนที่จำเป็นสำหรับกรอบตาราง เส้น การเติม และข้อความ โทนสีแดงและสีน้ำเงินหมายถึงเนื้อหาที่มีการเตือน ข้อผิดพลาด การทำลาย และการเลือกเปิดใช้งาน รูปแบบข้อความใช้เพื่อแยกความแตกต่างระหว่างข้อมูลหลักและรอง ชื่อเรื่อง และเนื้อหา

ตัวอย่างจานสี ไอคอน และรูปแบบฟอนต์ที่เพียงพอสำหรับตาราง
(ตัวอย่างขนาดใหญ่)

เซลล์และอุปกรณ์เสริม

เมื่ออะตอมของตารางพร้อม เราสามารถดำเนินการกับโมเลกุล — เซลล์ประเภทต่างๆ อย่างแรกเลย สิ่งสำคัญคือต้องนึกถึงสภาวะปกติ โฮเวอร์ และแอคทีฟของแต่ละองค์ประกอบล่วงหน้า จากนั้นไปคลิกปิดการใช้งานและสถานะอื่น ๆ

ในโครงการหนึ่งของฉัน เรามีเซลล์แปดประเภทที่มีการโต้ตอบกัน ที่ง่ายที่สุดคือข้อความและเซลล์ตัวเลข ในกรณีของเรา อนุญาตให้เติมเซลล์ตัวเลขด้วยเนื้อหาที่ไม่ใช่ตัวเลข เช่น “N/A” (ไม่ได้ใช้) และ “N/C” (ไม่มีตัวควบคุม) มันเป็นลักษณะเฉพาะของโดเมน ดรอปดาวน์และตัวเลือกวันที่ซับซ้อนกว่าและมีองค์ประกอบย่อย สุดท้าย เรามีเซลล์ตารางที่แสดงคำสั่งในแถว

ชุดตัวอย่างของเซลล์ตารางเก้าประเภทในสถานะปกติ ใช้งานอยู่ และสถานะคลิก
(ตัวอย่างขนาดใหญ่)

เซลล์สามารถมีอุปกรณ์เสริมต่างๆ ได้ เช่น คำแนะนำเครื่องมือ คำแนะนำในการป้อนข้อมูล ข้อความแสดงข้อผิดพลาด ตัวยึดตำแหน่ง ฯลฯ ในขั้นตอนนี้ อุปกรณ์จะคงที่ แต่นักออกแบบควรระบุตรรกะของการแสดงข้อมูลในภายหลัง (แอนิเมชัน หน่วงเวลา ฯลฯ)

ตัวอย่างของอุปกรณ์เสริมเซลล์ตาราง: คำแนะนำ ข้อความแสดงข้อผิดพลาด และคำแนะนำเครื่องมือ
(ตัวอย่างขนาดใหญ่)

แถวและส่วนหัว

เมื่อออกแบบเซลล์แล้ว คุณสามารถสร้างแถวและดูว่าชุดค่าผสมต่างๆ ทำงานร่วมกันได้ดีหรือไม่ เมื่อฉันออกแบบตารางที่มีตรรกะการแก้ไขที่ซับซ้อน คุณสมบัติบางอย่างมีให้โดยผู้ใช้ ในขณะที่คุณสมบัติอื่นๆ ถูกคำนวณหรือเติมด้วยค่าเริ่มต้นโดยอัตโนมัติ ด้านล่างนี้เป็นการผสมผสานระหว่างเซลล์แบบอ่านอย่างเดียวและเซลล์ที่แก้ไขได้ภายในหนึ่งแถว

สถานะปกติ โฮเวอร์ และแอ็คทีฟของแถวตารางแบบอ่านอย่างเดียว
(ตัวอย่างขนาดใหญ่)

โปรดทราบว่าเคอร์เซอร์จะแตกต่างออกไปเมื่อวางเมาส์เหนือเซลล์แบบอ่านอย่างเดียวและแก้ไขได้ การคลิกที่พวกมันจะทริกเกอร์การเลือกแถวหรือไปที่โหมดแก้ไขของเซลล์ที่แก้ไขได้

ในภาพถัดไป คุณจะเห็นว่าผู้คนสามารถเลือกแถวเดียวหรือหลายแถวได้

สถานะปกติ โฮเวอร์ และหลายตัวเลือกของแถวตารางที่แก้ไขได้
(ตัวอย่างขนาดใหญ่)

ถึงเวลาคิดเกี่ยวกับส่วนหัวของตารางแล้ว จากประสบการณ์ของผม มันมักจะเป็นไปไม่ได้ที่จะควบคุมความยาวของชื่อคอลัมน์และยึดติดกับบรรทัดเดียว แม้แต่นักเขียนที่ดีในทีม คุณก็จะไม่เขียนข้อความทั้งหมดให้สั้น ตารางบางตารางต้องใช้ชื่อทางเทคนิคหรือการแปลเป็นภาษาท้องถิ่นที่ยาว วลีที่เป็นภาษาอังกฤษหนึ่งบรรทัด อาจกลายเป็นสองหรือสามบรรทัดในภาษากรีก เยอรมัน หรือฮังการี ดังนั้นฉันจึงแสดงรูปแบบต่างๆ:

ตัวอย่างส่วนหัวของตารางอย่างง่ายที่มีจำนวนข้อความต่างกัน
(ตัวอย่างขนาดใหญ่)

ผู้ใช้ซอฟต์แวร์ที่ใช้ข้อมูลมักต้องการการเรียงลำดับและการกรอง ช่วยให้พวกเขาค้นหาข้อมูลที่มีค่าในกลุ่มข้อมูลขนาดใหญ่ ความท้าทายในการจัดเรียงและการกรองคือการรวมการควบคุมการจัดเรียงและกล่องการกรองเข้ากับองค์ประกอบส่วนหัวอื่นๆ เช่น ชื่อคอลัมน์ หน่วยวัด เป็นต้น

สถานะต่างๆ ของส่วนหัวของตาราง: ปกติ โฮเวอร์ เรียงลำดับจากน้อยไปมาก และมากไปหาน้อย
(ตัวอย่างขนาดใหญ่)

กล่องตัวกรองต่างจากเซลล์ตารางตรงที่มีไอคอน "รีเซ็ต" ทางด้านขวา เพื่อให้ผู้ใช้สามารถปิดใช้งานได้อย่างชัดเจนและดูเนื้อหาที่ไม่มีการกรอง

ตัวอย่างส่วนหัวของตารางพร้อมฟังก์ชันการกรอง
(ตัวอย่างขนาดใหญ่)

ในตัวอย่างของฉัน มีกล่องตัวกรองสามประเภท ตัวกรองตัวอักษรและตัวเลขช่วยให้ค้นหาด้วยตัวอักษรและตัวเลข รองรับไวด์การ์ด — ไม่ทราบจำนวนอักขระที่ไม่รู้จัก ตัวอย่างเช่น ถ้าฉันพิมพ์ 45*A1 อาจส่งผลให้มีการแสดงแถวที่มีค่าเช่น 45A1 , 45982A1B , 45A109B และ 096445-A1

สัญลักษณ์แทนเป็นคุณลักษณะที่ยุ่งยาก เนื่องจากขึ้นอยู่กับนิสัยของผู้คน เมื่อฉันออกแบบตารางสำหรับผู้เชี่ยวชาญทางเทคนิค เราได้กำหนดเครื่องหมายดอกจัน (*) ให้กับจำนวนสัญลักษณ์ที่ไม่รู้จัก สำหรับนักวิเคราะห์การประกันภัย ฉันเลือกสัญลักษณ์ SQL แบบดั้งเดิม — เครื่องหมายเปอร์เซ็นต์ (%) — เพราะพวกมันคุ้นเคย สำหรับตัวกรองแบบเลื่อนลง จะสลับระหว่างตัวเลือกข้อความ ตัวเลข หรือช่วงตัวเลขที่ไม่เกิดร่วมกันจำนวนหนึ่ง

ตัวอย่างชุดตัวกรองตารางสามประเภท
(ตัวอย่างขนาดใหญ่)

ตัวกรองตัวเลือกวันที่มีปฏิทินและทำงานเหมือนกับในเซลล์ เป็นการดีที่จะให้ผู้ใช้ป้อนวันที่ด้วยตนเองและเลือกจากปฏิทิน หากพวกเขารู้ว่ากำลังค้นหาอะไร การพิมพ์จะง่ายกว่าการคลิกมาก

สิ่งสำคัญอีกประการหนึ่งคือการจัดรูปแบบการป้อนข้อมูลที่มีความหมายโดยอัตโนมัติและไม่ต้องรบกวนผู้ที่มีข้อผิดพลาด "รูปแบบที่ไม่ถูกต้อง" หนึ่งในโครงการของฉัน เราอนุญาตให้ป้อนวันที่เช่น 01/25/2017 , 6.12.17 และ September 4 2016 และกรองตามเดือนหรือปีเท่านั้น

ตัวอย่างการเลื่อนแนวนอนในตารางขนาดใหญ่: มีคอลัมน์คงที่และไม่มีคอลัมน์
(ตัวอย่างขนาดใหญ่)

คอลัมน์

หนึ่งในคุณสมบัติที่พบบ่อยของตารางที่ซับซ้อนคือคอลัมน์ที่ตรึงไว้ โดยปกติ คอลัมน์ที่มีข้อมูลสำคัญ เช่น ชื่อองค์ประกอบหรือสถานะ จะไม่สามารถเลื่อนได้

ตัวอย่างการตัดข้อความในคอลัมน์แคบและการปรับขนาดคอลัมน์ด้วยตนเอง
(ตัวอย่างขนาดใหญ่)

แม้ว่าคอลัมน์ในตารางควรปรับขนาดเนื้อหาอย่างชาญฉลาด แต่ก็เกิดขึ้นเมื่อข้อความถูกตัดทอน ในกรณีนี้ การปรับขนาดคอลัมน์จะมีประโยชน์ ผู้ใช้สามารถลากขอบคอลัมน์และดูเนื้อหาแบบยาวได้ พวกเขาอาจต้องบีบคอลัมน์ที่ไม่สำคัญหรือคอลัมน์ที่มีข้อความสั้น ๆ

สองวิธีในการประมวลผลข้อความยาวในนิทาน: การตัดทอนกับหลายบรรทัด
(ตัวอย่างขนาดใหญ่)

อีกวิธีหนึ่งในการจัดการสตริงข้อความที่ยาวคือการยืดคอลัมน์ด้วยเนื้อหาที่ยาวที่สุดหรือตัดมันแล้ววางหลายบรรทัด วิธีแรกทำงานได้ดีขึ้นสำหรับสตริงข้อความที่คล้ายกันไม่มากก็น้อย อันที่สองทำงานได้ดีกว่าหากการดูเนื้อหาทั้งหมดมีความสำคัญต่อผู้คนมากกว่าการทำให้ตารางมีขนาดกะทัดรัดในแนวตั้ง

ตัวอย่างของกฎที่กำหนดความกว้างคอลัมน์ขั้นต่ำสำหรับเซลล์ประเภทต่างๆ
(ตัวอย่างขนาดใหญ่)

ในโครงการหนึ่งของฉัน เราได้กำหนดความกว้างขั้นต่ำของคอลัมน์เพื่อป้องกันไม่ให้ตารางปรับขนาดอย่างไม่เป็นระเบียบ เราปิดใช้งานการบีบคอลัมน์หลังความกว้างที่กำหนดขึ้นอยู่กับประเภทเนื้อหา

ท็อปบาร์

อะไรเป็นตาราง? เซลล์ คอลัมน์ แถว นอกจากนี้ ตารางที่ซับซ้อนมักมีแถบด้านบน เช่นเดียวกับส่วนประกอบอื่นๆ แถบด้านบนสร้างจากองค์ประกอบที่เล็กกว่า — ชื่อเรื่องและคำสั่ง

ด้านล่างนี้ ฉันได้รวบรวมรายการคำสั่งที่มีสถานะต่างๆ มากมาย ซึ่งเราใช้ในผลิตภัณฑ์ตัวใดตัวหนึ่ง เรามีคำสั่งไอคอนสำหรับคำเปรียบเทียบที่ชัดเจน เช่น plus = add / create , trash bin = remove , arrow = move คำสั่งที่ไม่ใช่แบบทั่วไป (เช่น กำหนด เก็บถาวร สมดุล) จำเป็นต้องมีการตั้งชื่อข้อความที่ชัดเจน นอกจากนี้ คำสั่งบางคำสั่งยังมาพร้อมกับเมนูดรอปดาวน์

ตัวอย่างชุดคำสั่งที่เกี่ยวข้องกับตารางประเภทต่างๆ ได้แก่ ไอคอน ข้อความ และรายการดรอปดาวน์
(ตัวอย่างขนาดใหญ่)

ตอนนี้เราสามารถลองรวมองค์ประกอบต่างๆ เข้าด้วยกันและดูว่าได้ผลหรือไม่ นี่คือตัวอย่างบางส่วน.

สามตัวอย่างส่วนหัวของตาราง: เฉพาะหัวเรื่อง หัวเรื่องพร้อมคำสั่งไอคอน และหัวเรื่องพร้อมคำสั่งข้อความ
(ตัวอย่างขนาดใหญ่)

แน่นอนว่านี่ไม่ใช่รายการคุณลักษณะและองค์ประกอบขั้นสุดท้าย มันแตกต่างจากโครงการหนึ่งไปอีกโครงการหนึ่งและอาจรวมถึงสิ่งอื่น ๆ เช่น:

  • เรียงลำดับมากกว่าหนึ่งคอลัมน์
  • ชุดคอลัมน์ที่ปรับแต่งได้ (ความสามารถในการสลับได้)
  • แถวที่ขยายได้ (แถวหลักสามารถมีแถวย่อยได้);
  • ตัวดำเนินการเชิงตรรกะสำหรับการกรองและค้นหา (“และ”, “หรือ”, “อื่น”, ฯลฯ.)

หากคุณลังเลว่าคุณลักษณะใดที่จะออกแบบและไม่เป็นเช่นนั้น นี่คือหลักการที่ดี มันคือมีดโกนของ Occam หรือกฎของพาร์ซิโมนี นักออกแบบไม่ควรสร้างอินสแตนซ์ใหม่หากอินสแตนซ์ที่มีอยู่ตอบสนองความต้องการ คุณควร "ตัด" คุณลักษณะที่เกินบรรยายซึ่งผู้ใช้อาจต้องการในทางทฤษฎีในอนาคตที่ไม่ได้กำหนดไว้ เรื่องเดียวกันสำหรับคุณสมบัติที่เข้ากับสถานการณ์หนึ่งร้อยสถานการณ์ แต่กลับไม่มีประโยชน์ในเก้าสิบเก้ากรณีที่เหลือ

ทั้งโต๊ะ

เมื่อบล็อคส่วนประกอบทั้งหมดพร้อมแล้ว คุณสามารถประกอบโต๊ะสองสามตัวเพื่อวัตถุประสงค์ต่างๆ นี่เป็นโอกาสที่จะตรวจพบความไม่สอดคล้องกัน บ่อยครั้งที่ฉันจัดการกับสามประเภทต่อไปนี้

ตารางอ่านอย่างเดียว

ชนิดตารางที่ง่ายที่สุดในการสร้างเนื่องจากแสดงเฉพาะข้อมูลตามที่เป็นอยู่ ไม่มีตัวเลือกการกรองหรือแก้ไข การเรียงลำดับหรือลำดับชั้นของแถวอาจช่วยวิเคราะห์กลุ่มข้อมูลขนาดใหญ่ ตารางดังกล่าวใช้สำหรับแสดงข้อมูลเพื่อแจ้งให้ผู้คนทราบเกี่ยวกับบางสิ่งบางอย่าง

ตัวอย่างตารางแบบอ่านอย่างเดียวพร้อมข้อมูลที่สมจริง
(ตัวอย่างขนาดใหญ่)

ค้นหาตาราง

เซลล์ไม่สามารถแก้ไขได้ ส่วนหัวมีกล่องตัวกรองและตัวควบคุมการเรียงลำดับ สามารถเลือกแถวได้ จากการปฏิบัติของฉัน ตารางดังกล่าวช่วยในการค้นหา เปรียบเทียบ และเลือกรายการหรือหลายรายการจากช่วงกว้างๆ ตัวอย่างเช่น กรองห้าจากหกพันเครื่องมือที่ไม่เกี่ยวข้องออกจากแค็ตตาล็อก จากนั้นเลือกเครื่องมือที่จำเป็นหนึ่งรายการ

ตัวอย่างตารางการค้นหาที่มีข้อมูลสมจริง
(ตัวอย่างขนาดใหญ่)

ตารางที่แก้ไขได้

เซลล์ทั้งหมดหรือบางส่วนสามารถแก้ไขได้ โดยปกติ จะไม่มีการกรองเนื่องจากลำดับของแถวอาจปรับแต่งได้ ตารางดังกล่าวมักจะมาพร้อมกับแถบเครื่องมือและอนุญาตให้ดำเนินการกับแถวได้

ตัวอย่างตารางที่แก้ไขได้ด้วยข้อมูลที่สมจริง
(ตัวอย่างขนาดใหญ่)

โดยสังเขป

  • เริ่มจากส่วนประกอบที่เล็กที่สุด แล้วค่อยๆ เคลื่อนไปยังส่วนประกอบที่ใหญ่กว่า สุดท้ายล้อเลียนสิ่งทั้งหมด
  • คิดเกี่ยวกับสถานะที่เป็นไปได้ทั้งหมดสำหรับแต่ละองค์ประกอบไว้ล่วงหน้า
  • ใช้หลักการมีดโกนของ Occam เพื่อรักษาจำนวนองค์ประกอบให้น้อยที่สุดแต่เพียงพอ

การอ่านที่แนะนำ : Design Systems โดย Alla Kholmatova

3. กำหนดปฏิสัมพันธ์

การสร้างบล็อคไม่เพียงพอสำหรับส่วนต่อประสานที่ซับซ้อนเช่นตาราง นักออกแบบควรคิดถึง "กฎของเกม" และออกแบบหลักการเชิงตรรกะและข้อตกลงที่อยู่เบื้องหลังส่วนที่มองเห็นได้ ฉันจะอธิบายเรื่องทั่วไปที่คุณต้องพิจารณา

ข้อมูลตัวเลข

ตารางของคุณควรมีเลขทศนิยมกี่ตัว? หนึ่ง สอง ห้า? ระดับความแม่นยำที่เหมาะสมที่สุดคืออะไร? ฉันตัดสินใจโดยพิจารณาจากความแม่นยำที่ผู้ใช้ต้องการสำหรับการตัดสินใจที่ถูกต้อง ในบางอาชีพ ความผันผวนระหว่าง 10932.01 ถึง 10932.23 มีความสำคัญ ในขณะที่ในด้านอื่นๆ หมายเลข 14 และ 15 ไม่ได้สร้างความแตกต่างอย่างแท้จริง

นี่คือตัวอย่างกฎข้อมูลตัวเลขที่ทีมของฉันใช้ในผลิตภัณฑ์ทางวิศวกรรมที่ซับซ้อน

  • ความยาว
    ทศนิยมสองตำแหน่ง (57.53 ม., 3.16 กม.); ช่องว่างถูกใช้เป็นตัวคั่นพัน (403 456.56 ม.)
  • น้ำหนัก
    ทศนิยมสองตำแหน่ง (225.08 กก., 108.75 ตัน); ช่องว่างถูกใช้เป็นตัวคั่นหลักพัน (12 032.17 กก.)
  • เงิน
    ทศนิยมสองตำแหน่ง ($ 9.45); ใช้เครื่องหมายจุลภาคเป็นตัวคั่นหลักพัน ($16,408,989.00)
  • เส้นผ่านศูนย์กลาง
    ทศนิยมสามตำแหน่ง (10.375 ซม.); ไม่จำเป็นต้องใช้ตัวคั่น
  • ละติจูดและลองจิจูด
    ทศนิยมแปดตำแหน่ง (26.4321121); เครื่องหมายลบใช้สำหรับลองจิจูดตะวันตกและลองจิจูดใต้ (-78.05640132)
  • ค่าเริ่มต้น
    สำหรับหน่วยที่ไม่ได้ระบุไว้ข้างต้น — ทศนิยมสองตำแหน่ง (32.05 g/m³, 86.13 C°)

อีกสิ่งหนึ่งที่เราพิจารณาคือความแตกต่างระหว่างข้อมูลที่ "จริง" ที่บันทึกไว้บนเซิร์ฟเวอร์และข้อมูล "โดยประมาณ" ในอินเทอร์เฟซ ระบบใช้ตัวเลขที่แม่นยำอย่างยิ่งโดยมีทศนิยมหลายสิบตำแหน่งในการคำนวณทั้งหมด แต่ผู้คนไม่จำเป็นต้องเห็นตลอดเวลา ดังนั้นเราจึงตัดสินใจแสดงจำนวนทศนิยมที่อธิบายไว้ข้างต้นและแสดงจำนวนเต็มเฉพาะเมื่อเซลล์ตารางทำงานอยู่เท่านั้น ตัวอย่างเช่น วิศวกรสามารถป้อน 134432.97662301 และเมื่อเขากด Enter ตารางจะแสดง 134 432.98 หลังจากคลิกอีกครั้ง วิศวกรจะเห็น 134432.97662301 อีกครั้ง

การตรวจสอบความถูกต้องของอินพุต

ไม่เหมือนกับรายการก่อนหน้าเกี่ยวกับตัวเลข การตรวจสอบความถูกต้องมีความสำคัญสำหรับตารางที่แก้ไขได้เท่านั้น มันมีสองด้าน ประการแรก กฎที่กำหนดข้อมูลที่ป้อนว่าถูกต้องหรือไม่ถูกต้อง ประการที่สอง ข้อความที่ช่วยแก้ไขข้อมูลที่ไม่ถูกต้องหรือกลไกที่แก้ไขโดยอัตโนมัติ โดยปกติ กฎการตรวจสอบจะซับซ้อนเกินไปที่จะสะท้อนให้เห็นในแบบจำลองหรือต้นแบบ ดังนั้น นักออกแบบจึงสามารถจัดทำเอกสารเป็นข้อความหรือในรูปแบบของผังงาน

นี่คือตัวอย่างเทมเพลตข้อความที่ฉันเคยใช้ ข้อความในวงเล็บมุมเป็นไดนามิกและมาจากกลไกการคำนวณหรือฐานข้อมูล

  • ควรมากกว่า measurement unit number Optional explanation
  • ควรน้อยกว่า measurement unit number Optional explanation
  • ควรอยู่ระหว่าง measurement unit number 1 และ number 2 Optional explanation
  • ค่าต่ำสุดควรน้อยกว่าค่าสูงสุด
  • ค่าสูงสุดควรมากกว่าค่าต่ำสุด
  • ค่าต่ำสุดและสูงสุดไม่ควรเท่ากัน

คำสั่ง

ตารางที่แก้ไขได้พร้อมแถบเครื่องมือมักจะต้องมีชุดของกฎเมื่อมีการเปิดใช้งานคำสั่งแถบเครื่องมือและเมื่อปิดใช้งาน สถานะเหล่านี้ขึ้นอยู่กับข้อเท็จจริงที่มีการเลือกแถว จำนวนแถวที่เลือก ตำแหน่งหรือเนื้อหาของแถวหรือแถวที่เลือก และเงื่อนไขอื่นๆ ด้านล่างนี้คือหนึ่งในหลายวิธีในการจัดทำเอกสารกฎเชิงตรรกะดังกล่าว

ดังนั้นเราจึงมีโต๊ะที่มีสารเคมีอยู่บ้าง มีคำสั่งเช่น "เพิ่มแถว", "เลื่อนขึ้น", "เลื่อนลง", ลบ", "คำนวณใหม่" และ "การตั้งค่า"

ตัวอย่างตารางที่แก้ไขได้ด้วยชุดคำสั่ง
(ตัวอย่างขนาดใหญ่)

และนี่คือคำอธิบายของสถานะคำสั่ง ปรากฎว่าความพร้อมใช้งานขึ้นอยู่กับเงื่อนไขหนึ่งหรือหลายอย่าง

ตัวอย่างกฎตรรกะที่อธิบายพฤติกรรมของคำสั่งตาราง
(ตัวอย่างขนาดใหญ่)

ขั้นตอนต่อไปคือการกำหนดผลลัพธ์ของแต่ละคำสั่ง ตัวอย่างเช่น จะเกิดอะไรขึ้นเมื่อฉันเลือกแถวระยะไกลสองแถวแล้วคลิก “เลื่อนขึ้น” หรือผลจากการคลิก “คำนวณใหม่” คืออะไร? คำถามเหล่านี้ควรได้รับคำตอบหรืออย่างน้อยต้องพิจารณาล่วงหน้า

คอนเทนเนอร์และการตอบสนอง

ตารางจะถูกวางในอินเทอร์เฟซอย่างไร ตัวอย่างเช่น จะใช้พื้นที่บางส่วนภายในคอนเทนเนอร์ที่มีอยู่หรือเป็นโมดูลแยกต่างหากหรือไม่ คำตอบสำหรับคำถามเหล่านี้ทั้งหมดขึ้นอยู่กับผลิตภัณฑ์ และเป็นการดีกว่าที่จะคาดการณ์ปัญหาที่อาจเกิดขึ้นและกำหนดหลักการอย่างละเอียดถี่ถ้วน

สามตัวเลือกยอดนิยมของสภาพแวดล้อมเรื่อง: เป็นองค์ประกอบหลักของหน้า เป็นโมดูลแดชบอร์ด และในกล่องโต้ตอบ
(ตัวอย่างขนาดใหญ่)

เมื่อฉันออกแบบเว็บแอปพลิเคชัน ฉันมักจะนึกถึงคอนเทนเนอร์สำหรับตารางอย่างน้อยสามประเภท กรณีทั่วไปที่สุดคือเมื่อโต๊ะขนาดใหญ่อยู่ตรงกลางหน้าจอและใช้พื้นที่ให้มากที่สุด ตารางดังกล่าวอาจไม่มีชื่อของตัวเองเนื่องจากทั้งหน้าจอมีไว้สำหรับการทำงานกับตารางโดยเฉพาะ ตารางขนาดเล็กและขนาดกลางสามารถกลายเป็นโมดูลอิสระของแดชบอร์ดได้เช่นเดียวกับรายการอื่นๆ เช่น กราฟ ไดอะแกรม โครงร่าง ในกรณีนี้ แถบด้านบนของตารางจะทำหน้าที่เป็นส่วนหัวของการ์ด และสุดท้าย ในแอปพลิเคชันองค์กรขนาดใหญ่ ตารางมักมีอยู่ภายในกล่องโต้ตอบป๊อปอัป ควรมีแนวทางที่ชาญฉลาดเพื่อไม่ให้บทสนทนาแตกเนื่องจากเนื้อหามากเกินไป

อีกแง่มุมหนึ่งของการวางตารางในสภาพแวดล้อม UI คือพื้นที่หน้าจอที่พร้อมใช้งาน แอปพลิเคชั่นระดับองค์กรส่วนใหญ่มีไว้สำหรับใช้งานบนเดสก์ท็อปเป็นหลัก การตอบสนองของตารางจำกัดอยู่ที่พฤติกรรมการยืดและบีบอย่างง่าย โดยปกติ ตารางที่มีแถวจำนวนมากและไม่กี่คอลัมน์จะใช้พื้นที่ 100% ของความกว้างที่มีอยู่ ด้วยเหตุนี้ เซลล์จึงมีการกระจายอย่างเท่าเทียมกันบนหน้าจอ และสามารถแสดงข้อความได้มากขึ้นโดยไม่ต้องตัดการตัดคำ ในทางกลับกัน ช่องว่างขนาดใหญ่มักปรากฏขึ้นระหว่างคอลัมน์ ซึ่งขัดแย้งกับกฎการออกแบบของความใกล้ชิด นั่นเป็นเหตุผลที่บางแอปพลิเคชันใช้เส้นระหว่างแถวหรือสีม้าลายสีขาว-เทา เพื่อให้ข้อมูลอ่านง่ายขึ้น

ตัวอย่างการขยายตารางและวิธีแก้ปัญหาเพื่อให้ข้อมูลชัดเจน: เส้นและการระบายสี "ม้าลาย"
(ตัวอย่างขนาดใหญ่)

วิธีที่ดีกว่าคือการกำหนดความกว้างเริ่มต้นที่มีเหตุผลและอนุญาตให้ปรับขนาดด้วยตนเองได้หากจำเป็น สำหรับการอ่านตาราง ควรมีพื้นที่ว่างทางด้านขวามากกว่าช่องว่างระหว่างคอลัมน์

ถ้าตารางมีทั้งแถวและคอลัมน์จำนวนมาก การเลื่อนแนวนอนและแนวตั้งจะหลีกเลี่ยงไม่ได้

แก่นแท้ของตารางที่ซับซ้อนคือมีขนาดใหญ่ จึงให้มุมมองข้อมูลในมุมสูง น่าเสียดายที่ฉันไม่สามารถบอกวิธีที่ดีจริงๆ ในการใช้โต๊ะขนาดใหญ่บนหน้าจอสมาร์ทโฟนได้ สเปรดชีต Excel และ Google สูญเสียพลังในหน้าจอขนาดเล็ก แม้ว่าจะมีวิธีที่มีประสิทธิภาพในการจัดการตารางขนาดเล็ก เช่น การแปลงตารางเป็นชุดไพ่

ตัวอย่างการเปลี่ยนตารางเป็นการ์ดบนมือถือ
(ตัวอย่างขนาดใหญ่)

การช่วยสำหรับการเข้าถึง

แม้แต่โต๊ะที่เรียบและสวยงามเป็นพิเศษก็อาจกลายเป็นฝันร้ายสำหรับผู้ใช้ ดังนั้น การปฏิบัติตามหลักการช่วยสำหรับการเข้าถึงจึงเป็นสิ่งสำคัญมาก แนวทางการเข้าถึงเนื้อหาเว็บ (WCAG 2.0) มีบทเกี่ยวกับตาราง เนื้อหาส่วนใหญ่เกี่ยวกับการเข้ารหัสที่เหมาะสม อย่างไรก็ตาม ดีไซเนอร์ยังต้องคิดอีกมากเช่นกัน

ต่อไปนี้คือข้อควรพิจารณาในการออกแบบที่สำคัญในแง่ของการช่วยสำหรับการเข้าถึง

  • ตั้งชื่อเรื่องและเตรียมบทสรุปที่กระชับ
    ผู้ใช้ที่มีความบกพร่องทางสายตาควรสามารถเข้าใจถึงแนวคิดของตารางโดยไม่ต้องประมวลผลเสียงในเซลล์ทั้งหมด
  • คำนึงถึงขนาดตัวอักษร
    แม้ว่าจะไม่มีขนาดขั้นต่ำอย่างเป็นทางการสำหรับเว็บ แต่ถือว่า 16 px (12 pt) เหมาะสมที่สุด นอกจากนี้ ผู้ใช้ควรสามารถเพิ่มได้ถึง 200% โดยไม่ทำลายเค้าโครงทั้งหมด
  • ทดสอบสีสำหรับคนตาบอดสี
    ข้อความและตัวควบคุมควรมีความคมชัดเพียงพอกับพื้นหลัง ต้องใช้อัตราส่วนสี 3: 1 น้อยที่สุด (ยิ่งมากยิ่งดี) นอกจากนี้ สีไม่ควรเป็นวิธีเดียวในการทำเครื่องหมายสิ่งของ ตัวอย่างเช่น ข้อความแสดงข้อผิดพลาดไม่ควรอาศัยข้อความสีแดงเท่านั้น ไอคอนคำเตือนจะให้เบาะแสเพิ่มเติมแก่ผู้ใช้ที่ตาบอดสี
  • หลีกเลี่ยงการควบคุมขนาดเล็กและคลุมเครือ
    ส่วนประกอบที่คลิกได้จะถือว่าเป็นมิตรกับการสัมผัสหากมีขนาดอย่างน้อย 40×40 พิกเซล คำสั่งที่แสดงด้วยไอคอนควรมีป้ายกำกับหรือมีคำแนะนำเครื่องมือและข้อความแสดงแทน นักออกแบบไม่ควรใช้ไอคอนมากเกินไป เนื่องจากผู้ใช้อาจไม่เข้าใจคำเปรียบเทียบที่ซับซ้อนอย่างถูกต้อง

คุณยังสามารถใช้เครื่องมือออนไลน์เพื่อตรวจสอบการช่วยสำหรับการเข้าถึง เช่น Wave ไม่เพียงแค่พบปัญหาการช่วยสำหรับการเข้าถึงและคุณลักษณะเท่านั้น แต่ยังเน้นให้เห็นโดยตรงบนหน้าและอธิบายวิธีแก้ไข

โดยสังเขป

  • การรวมเนื้อหาและการจัดรูปแบบเป็นงานของผู้ออกแบบเช่นกัน
  • คิดให้ไกลกว่า "สิ่งของ" องค์ประกอบของอินเทอร์เฟซของคุณ และพิจารณากรณีการใช้งานและรูปแบบที่ใช้บ่อย
  • เมื่อทุกอย่างภายในสอดคล้องกันและเข้ากันได้ ก็ถึงเวลาคิดว่าจะเข้ากับส่วนต่อประสานที่เหลือได้อย่างไร

บทสรุป

เราเพิ่งเดินผ่านขั้นตอนการสร้างตารางที่ซับซ้อน โครงการต่างๆ ต้องการแนวทางที่แตกต่างกัน แต่มีหลักการสากลข้อเดียว นักออกแบบควรทำให้องค์ประกอบทั้งหมดทำงานร่วมกันในรูปแบบใดก็ได้ นั่นเป็นเหตุผลที่ดีที่จะเริ่มต้นด้วยการรวบรวมความต้องการและสร้างบล็อกเล็กๆ ก่อน และแน่นอน การทดสอบกับผู้ใช้ทันทีที่คุณมีสิ่งที่สามารถคลิกได้และสมจริง

อ่านเพิ่มเติม

  • “การออกแบบปรมาณู” แบรด ฟรอสต์
  • “ออกแบบตารางข้อมูลที่ดีกว่า” แอนดรูว์ คอยล์
  • “การปรับโครงสร้าง UI” อดัม วาธาน และสตีฟ โชเกอร์