Bootstrap: уменьшить столбец

У меня есть таблица со столбцами дерева. Я хочу, чтобы "маленький" столбец был как можно меньше.

Я думал, что col-auto делает это:

Используйте классы col-{breakpoint}-auto для определения размера столбцов на основе естественной ширины их содержимого.

<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<table class = "table table-bordered">
 <tr>
  <td>big1</td>
  <td class = "col-auto">small</td>
  <td>big2</td>
 </tr>
</table>

Как я могу уменьшить «маленький» столбец и дать место другим столбцам?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
0
212
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Класс col-auto использует правило flex, но ваш родительский контейнер не определен как display: flex. Боковые теги td должны быть установлены на flex: 1.

.table.table-bordered tr {
  display: flex;
}

.table.table-bordered tr td:nth-child(1),
.table.table-bordered tr td:nth-child(3) {
  flex: 1;
}
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<table class = "table table-bordered">
 <tr>
  <td>big1</td>
  <td class = "col-auto">small</td>
  <td>big2</td>
 </tr>
</table>

Каков ваш общий совет: используйте vanilla css или используйте bootstrap?

guettli 20.12.2020 14:28

@guettli, За всю свою практику я ни разу не использовал бутстрап, так как для меня бутстрап — бесполезный инструмент. Но я ни в коем случае не буду отговаривать вас от этих рамок. Это должен быть только ваш выбор. Но мой совет - используйте ваш (ванильный) css.

s.kuznetsov 20.12.2020 18:29

«Сергей Кузнецов» указал мне правильное направление.

Вот решение, основанное на классах начальной загрузки:

<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<table class = "table table-bordered">
 <tr class = "d-flex">
  <td class = "flex-grow-1">big1</td>
  <td>small</td>
  <td style = "flex: 4">big2</td>
 </tr>
</table>

Поскольку Bootstrap поддерживает только flex-grow-0 и flex-grow-1, я добавил пример, как решить эту проблему с помощью ванильного CSS (style = "flex: 4").

Другие вопросы по теме