В Bootstrap 3
, я мог применить col-sm-xx
к th
тегам в thead
столбцах таблицы и изменить размер по желанию. Однако это не работает в начальной загрузке 4. Как я могу добиться чего-то подобного в начальной загрузке 4?
<thead>
<th class="col-sm-3">3 columns wide</th>
<th class="col-sm-5">5 columns wide</th>
<th class="col-sm-4">4 columns wide</th>
</thead>
Глядя на код, если он не соответствует размеру, особенно если вы добавляете некоторые данные в таблицу. Посмотрите, как это работает:
<div class="container" style="border: 1px solid black;">
<table class="table table-bordered">
<thead>
<tr class="row">
<th class="col-sm-3">3 columns wide</th>
<th class="col-sm-5">5 columns wide</th>
<th class="col-sm-4">4 columns wide</th>
</tr>
</thead>
<tbody>
<tr>
<td>123</td>
<td>456</td>
<td>789</td>
</tr>
</tbody>
</table>
</div>
css
twitter-bootstrap
html-table
bootstrap-4
Killerpixler
источник
источник
Ответы:
Обновлено 2018
Убедитесь, что ваша таблица включает
table
класс. Это связано с тем, что таблицы Bootstrap 4 являются "включенными", поэтомуtable
класс необходимо намеренно добавить в таблицу.http://codeply.com/go/zJLXypKZxL
В Bootstrap 3.x также был некоторый CSS для сброса ячеек таблицы, чтобы они не перемещались.
table td[class*=col-], table th[class*=col-] { position: static; display: table-cell; float: none; }
Я не знаю, почему это не альфа-версия Bootstrap 4, но она может быть добавлена обратно в финальную версию. Добавление этого CSS поможет всем столбцам использовать ширину, установленную в
thead
..Демо Bootstrap 4 Alpha 2
ОБНОВЛЕНИЕ (начиная с Bootstrap 4.0.0)
Теперь, когда Bootstrap 4 является flexbox, ячейки таблицы не будут принимать правильную ширину при добавлении
col-*
. Обходной путь - использоватьd-inline-block
класс в ячейках таблицы, чтобы предотвратить отображение столбцов по умолчанию: flex.Другой вариант в BS4 - использовать классы использования размеров для ширины ...
<thead> <tr> <th class="w-25">25</th> <th class="w-50">50</th> <th class="w-25">25</th> </tr> </thead>
Демо Bootstrap 4 Alpha 6
Наконец, вы можете использовать
d-flex
строки таблицы (tr) иcol-*
классы сетки в столбцах (th, td) ...<table class="table table-bordered"> <thead> <tr class="d-flex"> <th class="col-3">25%</th> <th class="col-3">25%</th> <th class="col-6">50%</th> </tr> </thead> <tbody> <tr class="d-flex"> <td class="col-sm-3">..</td> <td class="col-sm-3">..</td> <td class="col-sm-6">..</td> </tr> </tbody> </table>
Bootstrap 4.0.0 (стабильный) Демо
Примечание: изменение TR для отображения: flex может изменить границы
источник
w-25
,w-50
иw-75
классы работают с бутстрапом 4. Спасибо!Другой вариант - применить гибкий стиль к строке таблицы и добавить
col-classes
в заголовок таблицы / элементы данных таблицы:<table> <thead> <tr class="d-flex"> <th class="col-3">3 columns wide header</th> <th class="col-sm-5">5 columns wide header</th> <th class="col-sm-4">4 columns wide header</th> </tr> </thead> <tbody> <tr class="d-flex"> <td class="col-3">3 columns wide content</th> <td class="col-sm-5">5 columns wide content</th> <td class="col-sm-4">4 columns wide content</th> </tr> </tbody> </table>
источник
vertical-align: middle
больше не работает сd-flex
классом.align-items: baseline
. Чтобы узнать больше о flexbox, прочтите это руководствоИспользование
d-flex
класса работает хорошо, но некоторые другие атрибуты больше не работают какvertical-align: middle
свойство.Наилучший способ, которым я нашел очень простой размер столбцов, - это использовать
width
атрибут с процентом только вthead
ячейках.<table class="table"> <thead> <tr> <th width="25%">25%</th> <th width="25%">25%</th> <th width="50%">50%</th> </tr> </thead> <tbody> <tr> <td>25%</td> <td>25%</td> <td>50%</td> </tr> </tbody> </table>
источник
Я взломал это для выпуска Bootstrap 4.1.1 в соответствии с моими потребностями, прежде чем я увидел сообщение @florian_korner. Выглядит очень похоже.
Если вы используете sass, вы можете вставить этот фрагмент в конец файла начальной загрузки. Кажется, это решает проблему для Chrome, IE и Edge. В Firefox ничего не ломается.
@mixin make-td-col($size, $columns: $grid-columns) { width: percentage($size / $columns); } @each $breakpoint in map-keys($grid-breakpoints) { $infix: breakpoint-infix($breakpoint, $grid-breakpoints); @for $i from 1 through $grid-columns { td.col#{$infix}-#{$i}, th.col#{$infix}-#{$i} { @include make-td-col($i, $grid-columns); } } }
или если вам просто нужна скомпилированная утилита css:
td.col-1, th.col-1 { width: 8.33333%; } td.col-2, th.col-2 { width: 16.66667%; } td.col-3, th.col-3 { width: 25%; } td.col-4, th.col-4 { width: 33.33333%; } td.col-5, th.col-5 { width: 41.66667%; } td.col-6, th.col-6 { width: 50%; } td.col-7, th.col-7 { width: 58.33333%; } td.col-8, th.col-8 { width: 66.66667%; } td.col-9, th.col-9 { width: 75%; } td.col-10, th.col-10 { width: 83.33333%; } td.col-11, th.col-11 { width: 91.66667%; } td.col-12, th.col-12 { width: 100%; } td.col-sm-1, th.col-sm-1 { width: 8.33333%; } td.col-sm-2, th.col-sm-2 { width: 16.66667%; } td.col-sm-3, th.col-sm-3 { width: 25%; } td.col-sm-4, th.col-sm-4 { width: 33.33333%; } td.col-sm-5, th.col-sm-5 { width: 41.66667%; } td.col-sm-6, th.col-sm-6 { width: 50%; } td.col-sm-7, th.col-sm-7 { width: 58.33333%; } td.col-sm-8, th.col-sm-8 { width: 66.66667%; } td.col-sm-9, th.col-sm-9 { width: 75%; } td.col-sm-10, th.col-sm-10 { width: 83.33333%; } td.col-sm-11, th.col-sm-11 { width: 91.66667%; } td.col-sm-12, th.col-sm-12 { width: 100%; } td.col-md-1, th.col-md-1 { width: 8.33333%; } td.col-md-2, th.col-md-2 { width: 16.66667%; } td.col-md-3, th.col-md-3 { width: 25%; } td.col-md-4, th.col-md-4 { width: 33.33333%; } td.col-md-5, th.col-md-5 { width: 41.66667%; } td.col-md-6, th.col-md-6 { width: 50%; } td.col-md-7, th.col-md-7 { width: 58.33333%; } td.col-md-8, th.col-md-8 { width: 66.66667%; } td.col-md-9, th.col-md-9 { width: 75%; } td.col-md-10, th.col-md-10 { width: 83.33333%; } td.col-md-11, th.col-md-11 { width: 91.66667%; } td.col-md-12, th.col-md-12 { width: 100%; } td.col-lg-1, th.col-lg-1 { width: 8.33333%; } td.col-lg-2, th.col-lg-2 { width: 16.66667%; } td.col-lg-3, th.col-lg-3 { width: 25%; } td.col-lg-4, th.col-lg-4 { width: 33.33333%; } td.col-lg-5, th.col-lg-5 { width: 41.66667%; } td.col-lg-6, th.col-lg-6 { width: 50%; } td.col-lg-7, th.col-lg-7 { width: 58.33333%; } td.col-lg-8, th.col-lg-8 { width: 66.66667%; } td.col-lg-9, th.col-lg-9 { width: 75%; } td.col-lg-10, th.col-lg-10 { width: 83.33333%; } td.col-lg-11, th.col-lg-11 { width: 91.66667%; } td.col-lg-12, th.col-lg-12 { width: 100%; } td.col-xl-1, th.col-xl-1 { width: 8.33333%; } td.col-xl-2, th.col-xl-2 { width: 16.66667%; } td.col-xl-3, th.col-xl-3 { width: 25%; } td.col-xl-4, th.col-xl-4 { width: 33.33333%; } td.col-xl-5, th.col-xl-5 { width: 41.66667%; } td.col-xl-6, th.col-xl-6 { width: 50%; } td.col-xl-7, th.col-xl-7 { width: 58.33333%; } td.col-xl-8, th.col-xl-8 { width: 66.66667%; } td.col-xl-9, th.col-xl-9 { width: 75%; } td.col-xl-10, th.col-xl-10 { width: 83.33333%; } td.col-xl-11, th.col-xl-11 { width: 91.66667%; } td.col-xl-12, th.col-xl-12 { width: 100%; }
источник
Отказ от ответственности: этот ответ может быть немного устаревшим. Начиная с бета-версии bootstrap 4. С тех пор бутстрап изменился.
Класс размера столбца таблицы был изменен с этого
<th class="col-sm-3">3 columns wide</th>
к
<th class="col-3">3 columns wide</th>
источник
Я могу решить эту проблему, используя следующий код с помощью Bootstrap 4:
<table class="table"> <tbody> <tr class="d-flex"> <th class="col-3" scope="row">Indicador:</th> <td class="col-9">this is my indicator</td> </tr> <tr class="d-flex"> <th class="col-3" scope="row">Definición:</th> <td class="col-9">This is my definition</td> </tr> </tbody> </table>
источник
Начиная с Alpha 6 вы можете создать следующий файл sass:
@each $breakpoint in map-keys($grid-breakpoints) { $infix: breakpoint-infix($breakpoint, $grid-breakpoints); col, td, th { @for $i from 1 through $grid-columns { &.col#{$infix}-#{$i} { flex: none; position: initial; } } @include media-breakpoint-up($breakpoint, $grid-breakpoints) { @for $i from 1 through $grid-columns { &.col#{$infix}-#{$i} { width: 100% / $grid-columns * $i; } } } } }
источник