Как показать 3 карты подряд в системе Bootstrap Grid

Я пытаюсь добавить 3 карты подряд, используя систему сетки начальной загрузки, но проблема в том, что когда я использую цикл Django, каждая карта отображается сама по себе в каждой строке, а это не то, что я хочу. Я искал ответ и добавил его, чтобы показать свою пробную версию, но это не сработало.

Вот template.html перед добавлением цикла django

<div class = "row row-cols-1 row-cols-md-3 g-4">
  <div class = "col">
    <div class = "card h-100">
      <img
        src = ""
        class = "card-img-top"
        alt = "..."
      />
      <div class = "card-body">
        <h5 class = "card-title">Card title</h5>
        <p class = "card-text">
          This is a wider card with supporting text below as a natural lead-in to
          additional content. This content is a little bit longer.
        </p>
      </div>
      <div class = "card-footer">
        <small class = "text-muted">Last updated 3 mins ago</small>
      </div>
    </div>
  </div>
  <div class = "col">
    <div class = "card h-100">
      <img
        src = ""
        class = "card-img-top"
        alt = "..."
      />
      <div class = "card-body">
        <h5 class = "card-title">Card title</h5>
        <p class = "card-text">
          This card has supporting text below as a natural lead-in to additional
          content.
        </p>
      </div>
      <div class = "card-footer">
        <small class = "text-muted">Last updated 3 mins ago</small>
      </div>
    </div>
  </div>
  <div class = "col">
    <div class = "card h-100">
      <img
        src = ""
        class = "card-img-top"
        alt = "..."
      />
      <div class = "card-body">
        <h5 class = "card-title">Card title</h5>
        <p class = "card-text">
          This is a wider card with supporting text below as a natural lead-in to
          additional content. This card has even longer content than the first to show
          that equal height action.
        </p>
      </div>
      <div class = "card-footer">
        <small class = "text-muted">Last updated 3 mins ago</small>
      </div>
    </div>
  </div>
</div>

Вот после цикла django

{% for item in object_list %}

<div class = "card-group">
  <div class = "col">
    <div class = "card h-100">
      <embed
        src = "{{ item.image.url }}"
        class = "card-img-top"
        alt = "..."
      />
      <div class = "card-body">
        <h5 class = "card-title">{{ item.title }}</h5>
            <h4 class = "font-weight-bold blue-text">
                <strong>
                    {% if item.discount_price %}
                    <small><span class = "badge badge-pill danger-color">Discount was <del>${{ item.price }}</del></span></small>
                    <br>
                    Now ${{ item.discount_price }}
                    {% else %}
                    ${{ item.price}}
                    {% endif %}
                </strong>
            </h4>
        <p class = "card-text">
        {{ item.description }}
        </p>
      </div>
      <div class = "card-footer">
        <small class = "text-muted">Last updated 3 mins ago</small>
      </div>
    </div>
  </div>
</div>
{% endfor %}

Как настроить 3 карты подряд и зафиксировать этот размер? Там нет файла CSS, это только загрузчик, и он отлично работает без django, но когда я удаляю карту, она увеличивается, подгоняя любые карты, доступные для столбца.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
3 383
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Чтобы получить три карты подряд, вам нужно указать ширину столбца для каждой строки. Из документов

Благодаря flexbox столбцы сетки без указанной ширины будут автоматически размещаться как столбцы одинаковой ширины. Например, каждый из четырех экземпляров .col-sm будет автоматически иметь ширину 25% от точки останова и выше. Дополнительные примеры см. в разделе авторазметки столбцов. Классы столбцов указывают количество столбцов, которые вы хотели бы использовать из возможных 12 в строке. Итак, если вам нужны три столбца одинаковой ширины, вы можете использовать .col-4.

Итак, в вашем случае у вас было бы

<div class='row card-group'>
{% for item in object_list %}
  <div class = "col-4">
    <div class = "card h-100">
      <embed
        src = "{{ item.image.url }}"
        class = "card-img-top"
        alt = "..."
      />
      <div class = "card-body">
        <h5 class = "card-title">{{ item.title }}</h5>
            <h4 class = "font-weight-bold blue-text">
                <strong>
                    {% if item.discount_price %}
                    <small><span class = "badge badge-pill danger-color">Discount was <del>${{ item.price }}</del></span></small>
                    <br>
                    Now ${{ item.discount_price }}
                    {% else %}
                    ${{ item.price}}
                    {% endif %}
                </strong>
            </h4>
        <p class = "card-text">
        {{ item.description }}
        </p>
      </div>
      <div class = "card-footer">
        <small class = "text-muted">Last updated 3 mins ago</small>
      </div>
    </div>
  </div>
{% endfor %}
</div>

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