Làm thế nào để hiển thị bảng trên thiết bị di động bằng Bootstrap?


90

Các bảng của tôi hiển thị tốt trên máy tính để bàn, nhưng khi tôi cố gắng xem phiên bản di động, bảng của tôi sẽ quá rộng so với màn hình thiết bị di động. Tôi đang sử dụng một bố cục đáp ứng.

Làm cách nào để đặt chiều rộng bảng cho chế độ xem trên thiết bị di động? Có những lựa chọn thay thế nào khác để trình bày dữ liệu dạng bảng trên các chế độ xem di động bằng Bootstrap?


2
Tôi nhận thấy rằng Bootstrap 3.0 sẽ là "thiết bị di động đầu tiên". Có ai nghĩ rằng họ sẽ giải quyết "vấn đề" này của bảng di động?

Các bảng dường như vẫn giống nhau trong Bootstrap 3. :(
Giles Roberts


@ ta.speot.is Hiện tại, chúng tốt hơn so với các ứng cử viên phát hành. Tất cả các ví dụ ở đó mặc dù chỉ có 4 cột. Vẫn không hoạt động tốt cho các bảng rộng. Tôi đã kết thúc bằng cách sử dụng một giải pháp có cột đầu tiên cố định và tất cả phần còn lại sẽ cuộn.
Giles Roberts

@ ta.speot.is Vừa xem câu trả lời của bạn bên dưới. Bỏ lỡ rằng Bootstrap 3 có một lớp đáp ứng bảng. Hoạt động tốt nếu bạn không cần một số cột nhất định luôn hiển thị.
Giles Roberts

Câu trả lời:


122

Bootstrap 3 giới thiệu các bảng đáp ứng :

<div class="table-responsive">
  <table class="table">
    ...
  </table>
</div>

Bootstrap 4 cũng tương tự, nhưng có nhiều quyền kiểm soát hơn thông qua một số lớp mới :

... đáp ứng trên tất cả các chế độ xem ... với .table-responsive. Hoặc, chọn một điểm ngắt tối đa để có bảng đáp ứng bằng cách sử dụng .table-responsive{-sm|-md|-lg|-xl}.

Tín dụng cho Jason Bradley vì đã cung cấp một ví dụ:

Bảng đáp ứng


6
Cảm ơn bạn. Giống như 99,9% mọi người, tôi không thèm đọc tài liệu về bản cập nhật. Tôi đoán tôi nên có.
David Bélanger

1
Quả thực là như vậy! Thêm vào đó, nó đang làm những gì tôi muốn ngay từ đầu nên đối với tôi, đó là 2 trong 1!
David Bélanger

Chính xác thì table-responsivelớp học làm gì? Tài liệu Bootstrap nói "làm cho chúng cuộn theo chiều ngang", nhưng tôi không nhận thấy sự khác biệt liên quan đến việc cuộn. Sự khác biệt duy nhất tôi nhận thấy là bảng có đường viền bên ngoài khi ở dưới một kích thước màn hình nhất định ( như trong ví dụ ).
Dennis

5
@ ta.speot.là tôi nhận ra rằng mình đã đọc nhầm tài liệu và đang sử dụng lớp không chính xác. Tôi đã thêm .table-responsivevào chính bảng (ví dụ <table class="table table-responsive">), thay vì bao bọc bảng .table-responsive, mà bạn thậm chí đã chỉ ra trong ví dụ của mình.
Dennis

1
@PirateApp Sử dụng hidden-*trên các tdcột bạn muốn ẩn getbootstrap.com/docs/3.3/css/#responsive-utilities
ta.speot.is

68

Bạn cũng có thể cân nhắc thử một trong những cách tiếp cận này, vì các bảng lớn hơn không chính xác thân thiện với thiết bị di động ngay cả khi nó hoạt động:

http://elvery.net/demo/responsive-tables/

Tôi là một phần của 'No More Tables' nhưng điều đó rõ ràng phụ thuộc vào ứng dụng của bạn.


3
Liên kết tuyệt vời và ba giải pháp thực sự tuyệt vời! Tôi đã phải google theo cách của tôi để quay lại câu hỏi này chỉ để ủng hộ câu trả lời của bạn. Cảm ơn!
Simon

2
Một câu trả lời chỉ bao gồm một liên kết là nghi thức Stack Overflow không hợp lệ. Trang có thể bị thiếu, nội dung trên trang có thể thay đổi, câu trả lời không hiển thị ngay lập tức, không thể cải thiện câu trả lời, v.v. BTW liên kết không trỏ đến nội dung chính xác nữa.
Dennis


1
@Dennis nói đúng. Vui lòng giải thích câu trả lời của bạn để tóm tắt những gì trong liên kết và giữ liên kết đó cho các bản demo và chi tiết khác. Dù sao thì bạn cũng nhận được sự ủng hộ của tôi vì liên kết này rất thú vị. Chúc mừng.
Mario Awad

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.