Чому таблиці Bootstrap у Twitter завжди мають 100% ширину?


148

Припустимо, ця розмітка:

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

Немає значення, скільки клітинок у мене є, таблиця завжди на 100% шириною. Чому це?


3
оскільки він ефективно використовує ширину батьків; саме так повинна працювати сітка!
Вішал

Якої ширини ви хочете мати ваш стіл?
Андрес Ілліч

1
Я хотів би, щоб це залежало від кількості комірок, як і звичайна таблиця
skowron-line

1
Для тих, хто шукає, як встановити ширину комірок, наприклад, ширину
діва

Відповіді:


228

Усі таблиці в завантажувальній стрічці розтягуються відповідно до їх контейнера, що ви можете легко зробити, розмістивши свою таблицю всередині .span*обраного вами елемента сітки. Якщо ви хочете видалити цю властивість, ви можете створити власний клас таблиці та просто додати його до таблиці, яку ви хочете розгорнути вмістом у межах:

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

Ви можете додати цей клас у свій власний таблицю стилів і просто додати його до контейнера таблиці так:

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

Таким чином, ваша зміна не вплине на саму таблицю стилів завантажувальної програми (можливо, ви хочете мати таблицю з флюїдом десь у вашому документі).


1
Якщо ви розмістите таблицю всередині тегу span *, щоб централізувати таблицю, чи просто ви включите зміщення *?
HPWD

@dlackey Так, ви можете змістити таблицю класом, щоб централізувати, ви навіть можете додати .span*клас до таблиці, щоб надати йому деяку ширину.
Андрес Ілліч

2
Принаймні, з завантажувальним приладом 3, він працював для мене лише після додавання !importantдоwidth: auto
geekQ

нам потрібно використовувати клас span bootstarp для таблиці, або нам доведеться вручну надати стиль для .span класу,
Jot Dhaliwal

1
Увага. Будьте обережні, якщо використовуєте їх у поєднанні з .table-respovable та .table-межами. Бордюр застосовується до контейнера, що реагує на .table, коли нижче ширини екрану 767px. (завантажувач 3.x)
Стюарт



13

Відповідь №1:

Навіщо боротися з цим? Чому б просто не контролювати ширину столу за допомогою сітки завантажувальної стрічки? Це розмітка Bootstrap 3.

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

Це створить таблицю, що становить половину (6 з 12) ширини елемента, що містить.

Я інколи використовую стилі вбудованого типу відповідно до інших відповідей, але це не рекомендується.

Відповідь №2:

Якщо ви використовуєте bootstrap 4, він має кілька хороших допоміжних класів для ширини, таких як:

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

Ось документ: https://getbootstrap.com/docs/4.0/utilities/sizing/


2
Це, безумовно, найпростіший варіант вирішення, і це має бути прийнята відповідь
Джефф Браун,

12

У мене була така ж проблема, я зробив таблицю виправленою, а потім вказав свою ширину td. Якщо у вас є, ви можете зробити і це.

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

<td width="10%" /td>

Мені не пощастило з .table-nonfluid.


1
Спробуйтеwidth: auto !important;
Лев

Ви можете уникнути !important(це погана практика ). Дивіться коментар до відповіді нижче .
Оллі Беннетт

3

Я спробував додати style="width: auto !important"і працює для мене чудово!


1
Якщо ви переконайтеся, що ваш користувальницький CSS з’являється після CSS Bootstrap (наприклад, <link>тег власних стилів відображається під<link> тегом Bootstrap ), то правила будуть каскадно виконані так, як було розроблено, і вам зовсім не потрібно використовувати !importantвинятки. Це вірно, тому що width: 100%;визначено tableв CSS Bootstrap і тому замінює ваше width: auto;правило.
Оллі Беннетт

Насправді не відповідь, краще відредагувати поточну прийняту відповідь, яку читає більшість людей (я її редагував зараз) .
Юліан Онофрей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.