Tại sao các bảng Twitter Bootstrap luôn có chiều rộng 100%?


148

Giả sử đánh dấu này:

<table class="table table-bordered" align="center"> 

Không có bao nhiêu ô tôi có, bảng luôn có chiều rộng 100%. Tại sao vậy


3
bởi vì nó sử dụng hiệu quả chiều rộng cha mẹ của nó; đó là cách hệ thống lưới nên hoạt động!
Vishal

Chiều rộng nào bạn muốn bàn của bạn là?
Andres Ilich

1
Tôi muốn nó phụ thuộc vào số lượng ô, giống như bảng thông thường
skowron-line

1
Đối với những người tìm kiếm cách đặt chiều rộng ô như chiều rộng div thông qua nhịp, hãy kiểm tra câu trả lời này
alexche8

Câu trả lời:


228

Tất cả các bảng trong bootstrap trải dài theo thùng chứa của chúng, bạn có thể dễ dàng thực hiện bằng cách đặt bảng của mình bên trong một .span*phần tử lưới mà bạn chọn. Nếu bạn muốn xóa thuộc tính này, bạn có thể tạo lớp bảng của riêng mình và chỉ cần thêm nó vào bảng bạn muốn mở rộng với nội dung trong:

.table-nonfluid {
   width: auto !important;
}

Bạn có thể thêm lớp này vào trong biểu định kiểu của riêng bạn và chỉ cần thêm nó vào thùng chứa của bảng như vậy:

<table class="table table-nonfluid"> ... </table>

Bằng cách này, thay đổi của bạn sẽ không ảnh hưởng đến bản định kiểu bootstrap (bạn có thể muốn có một bảng chất lỏng ở một nơi khác trong tài liệu của mình).


1
Nếu bạn đặt bảng bên trong thẻ span *, để đặt chính giữa bảng, bạn cũng sẽ chỉ bao gồm phần bù * chứ?
HPWD

@dlackey Có, bạn có thể bù bảng với một lớp để căn giữa, thậm chí bạn có thể thêm một .span*lớp vào bảng của mình để tạo cho nó một số chiều rộng.
Andres Ilich

2
Ít nhất với bootstrap 3, nó chỉ hoạt động với tôi sau khi thêm !importantvàowidth: auto
geekQ

chúng ta phải sử dụng lớp span của bootstarp cho một bảng hoặc chúng ta phải tự tạo kiểu cho lớp .span,
Jot Dhaliwal

1
Cảnh báo. Hãy cẩn thận nếu được sử dụng kết hợp với .table-responsive và .table-giáp. Đường viền được áp dụng cho vùng chứa .table-responsive khi bên dưới chiều rộng màn hình 767px. (bootstrap 3.x)
Stuart



13

Trả lời 1:

Tại sao phải chiến đấu với nó? Tại sao không chỉ đơn giản là kiểm soát chiều rộng bảng của bạn bằng cách sử dụng lưới bootstrap? Đây là Bootstrap 3 đánh dấu.

<div class="row">
    <div class="col-sm-6">
        <table></table>
    </div>
</div>

Điều này sẽ tạo ra một bảng bằng một nửa (6 trên 12) chiều rộng của phần tử chứa.

Đôi khi tôi sử dụng các kiểu nội tuyến theo các câu trả lời khác, nhưng nó không được khuyến khích.

Câu trả lời số 2:

Nếu bạn đang sử dụng bootstrap 4, nó có một số lớp trợ giúp đẹp cho chiều rộng như:

w-25, w-50, w-75, and w-100

Đây là tài liệu: https://getbootstrap.com/docs/4.0/utilities/sizing/


2
đây là giải pháp đơn giản nhất và nên là câu trả lời được chấp nhận
Jeff Brown

12

Tôi đã có cùng một vấn đề, tôi đã sửa bảng và sau đó chỉ định chiều rộng td của tôi. Nếu bạn có th bạn có thể làm những điều đó là tốt.

<style>
table {
table-layout: fixed;
word-wrap: break-word;
}
</style>

<td width="10%" /td>

Tôi đã không có bất kỳ may mắn với .table-nonfluid.


1
Hãy thửwidth: auto !important;
Leo

Bạn có thể tránh !important(đó là một thực hành xấu ). Xem bình luận về một câu trả lời dưới đây .
Ollie Bennett

3

Tôi đã cố gắng thêm style="width: auto !important"và làm việc tuyệt vời cho tôi!


1
Nếu bạn đảm bảo rằng CSS tùy chỉnh của bạn xuất hiện sau CSS Bootstrap (ví dụ: <link>thẻ kiểu tùy chỉnh của bạn xuất hiện bên dưới<link> thẻ Bootstrap ), thì các quy tắc sẽ xếp tầng như được thiết kế và bạn hoàn toàn không cần sử dụng !importantngoại lệ của mình . Điều này đúng bởi vì width: 100%;được định nghĩa tabletrong CSS Bootstrap và do đó thay thế width: auto;quy tắc của bạn .
Ollie Bennett

Không thực sự là một câu trả lời, tốt hơn là chỉnh sửa câu trả lời được chấp nhận hiện tại mà hầu hết mọi người đọc (tôi đã chỉnh sửa nó ngay bây giờ) .
Iulian Onofrei
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.