Kinh nghiệm xử lý responsive table hiệu quả

Responsive Table là gì?

 

Responsive trong thiết kế web là khả năng tự động điều chỉnh giao diện sao cho phù hợp với nhiều kích thước màn hình khác nhau như máy tính, máy tính bảng và điện thoại. Điều này đảm bảo người dùng có trải nghiệm tốt nhất trên mọi thiết bị.


Tin tức công nghệ, responsive, responsive table

 

Responsive Table là khái niệm chỉ việc tối ưu hóa khả năng hiển thị của bảng dữ liệu sao cho phù hợp với các kích thước màn hình khác nhau. Đặc biệt là với những bảng nhiều cột, việc hiển thị đầy đủ nội dung trên màn hình nhỏ là rất khó. Do đó, chúng ta cần có giải pháp phù hợp để xử lý.


Tin tức công nghệ, responsive, responsive table

 

Dưới đây là ba hướng tiếp cận phổ biến khi xử lý bảng responsive.

 

Cách 1: Cho phép cuộn ngang

 

Với cách này, chúng ta chỉ cần thêm thuộc tính overflow-x: auto cho phần tử bao quanh bảng, giúp trình duyệt tự tạo thanh cuộn ngang khi nội dung bị tràn. Trên thiết bị di động, người dùng có thể vuốt sang trái/phải để xem hết các cột.

 

Code minh họa:

 

<!DOCTYPE html>

<html>

  <head>

    <!-- ... -->

  </head>

  <body>

    <div style="overflow-x: auto">

      <table>

        <!-- ... -->

      </table>

    </div>

  </body>

</html>

 

Kết quả:

 

Tin tức công nghệ, responsive, responsive table

 

Ưu điểm:

 

  • Dễ thực hiện, chỉ cần một lớp bọc có overflow-x.

 

  • Giao diện bảng gần như giữ nguyên so với bản trên desktop.

 

Nhược điểm:

 

  • Trải nghiệm người dùng không thực sự thoải mái do phải cuộn ngang.

 

  • Việc so sánh giữa các dòng bị hạn chế vì không nhìn được tất cả cột cùng lúc.

 

Cách 2: Biến bảng thành dạng dọc

 

Ở cách này, bảng sẽ được hiển thị theo chiều dọc: mỗi dòng trở thành một "khối" với tên cột và giá trị tương ứng. Để làm được điều này, cần kết hợp Media Query và thay đổi thuộc tính display của các phần tử trong bảng.

 

Yêu cầu:

 

  • Media Queries: Xác định khi nào áp dụng kiểu hiển thị mới (ví dụ: khi màn hình nhỏ hơn 768px).

 

  • display: block: Biến các phần tử bảng từ table-cell sang block để dễ thay đổi bố cục.

 

Code minh họa:

 

<!DOCTYPE html>

<html>

  <head>

    <!-- ... -->

     <style>

      @media (min-width: 320px) and (max-width: 767px) {

        table,

        thead,

        tbody,

        th,

        td,

        tr {

            display: block;

        }

      }

     </style>

  </head>

  <body>

      <table>

        <!-- ... -->

      </table>

    </div>

  </body>

</html>

 

Kết quả:


Tin tức công nghệ, responsive, responsive table

 

Ưu điểm:

 

  • Hiển thị rõ ràng, dễ đọc trên màn hình nhỏ.

 

  • Không cần cuộn ngang, người dùng xem từng bản ghi một cách đầy đủ.

 

Nhược điểm:

 

  • Không phù hợp với bảng quá nhiều cột.

 

  • Việc so sánh giữa các dòng có thể khó khăn do bố cục dọc.

 

Cách 3: Cho phép tùy chỉnh ẩn/hiện cột

 

Cách này linh hoạt hơn, cho phép người dùng tự chọn các cột cần xem. Một số thư viện UI hiện nay đã hỗ trợ sẵn tính năng này, nhưng nếu tự làm, bạn cần viết thêm logic để ẩn/hiện cột tùy theo kích thước màn hình hoặc lựa chọn của người dùng.

 

Kết quả:


Tin tức công nghệ, responsive, responsive table

 

Ưu điểm:

 

  • Giữ được bố cục bảng ban đầu.

 

  • Người dùng có thể tùy chỉnh giao diện theo nhu cầu.

 

Nhược điểm:

 

  • Cần thêm thời gian và công sức để xây dựng tính năng nếu không có sẵn.

 

  • Tuy nhiên, nếu tái sử dụng được cho các dự án sau thì đây là một giải pháp lâu dài đáng cân nhắc.

 

Kết luận

 

Trên đây là ba cách xử lý bảng dữ liệu sao cho phù hợp với thiết bị di động, dựa trên kinh nghiệm thực tế của mình trong các dự án frontend. Tùy vào mục tiêu và mức độ phức tạp của dữ liệu, bạn có thể lựa chọn giải pháp phù hợp nhất cho mình. Cảm ơn các bạn đã theo dõi, hẹn gặp lại trong những bài viết tiếp theo.

 

 HỖ TRỢ TRỰC TUYẾN