Bootstrap 5 Адаптивный макет карточек/сеток/столбцов, как это сделать?

Я пытаюсь создать макет HTML, похожий на изображение ниже. Кажется, я не могу добиться этого с помощью Bootstrap 5 и сохранить все отзывчивым.

Любая помощь будет оценена по достоинству!

Я попытался создать два столбца: один для большой карты... а затем справа разместить карты поменьше. Но правые столбцы складываются только друг на друга, а не рядом...

Рассмотрите официальную документацию по начальной загрузке

Tribhuwan 11.07.2024 03:04

Должен ли широкий первый элемент div совпадать с тремя полями ниже, потому что на вашем изображении это не так!

Paulie_D 11.07.2024 20:34
Улучшение производительности загрузки с помощью 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
2
59
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Bootstrap как фреймворк хорош для решения большинства проблем. Однако это не решение всех проблем.

Сетка Bootstrap всегда состоит из 12 столбцов. Ваша сетка на рисунке состоит из 7 столбцов. 7 столбцов не умещаются в 12 (1,2,3,4,6 можно).

Итак, вам осталось написать свою собственную сетку.

Во-первых, вам нужен контейнер и создайте макет из 7 столбцов. Вы можете сделать это, используя этот CSS:

.container {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

затем вы должны позволить первому блоку охватывать несколько столбцов и строк, что можно сделать, добавив это к первой карточке:

.first-card {
  grid-column: span 3;
  grid-row: span 2;
}

Если вы хотите, чтобы коробки меньшего размера были квадратами, как на картинке, вы можете просто использовать aspect-ratio: 1;

/* script just for creating the elements */
for (let i = 0; i < 23; i++) {
  let card = document.createElement('div');
  card.classList.add('card');
  card.textContent = i + 1;
  container.appendChild(card);
}
  
#container {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.5em;
  .card {
    background-color: orange;
    color: white;
    font-size: 2em;
    display: flex;
    justify-content: center;
    align-items: center;
    &:nth-child(1) {
      grid-column: span 3;
      grid-row: span 2;
    }
    &:not(:nth-child(1)) {
      aspect-ratio: 1;
    }
  }
}
<div id = "container"></div>

Это, конечно, можно сделать и в ответ. Если да, вам необходимо предоставить более подробную информацию о том, как сетка должна изменяться в определенных окнах просмотра.

Да, ЕСЛИ широкий первый элемент div должен совпадать с тремя ниже, но на примере изображения этого не видно.

Paulie_D 11.07.2024 20:36

Да, вы можете создать макет с помощью начальной загрузки. Вот код

<!doctype html>
<html lang = "en">
  <head>
    <meta charset = "utf-8">
    <meta name = "viewport" content = "width=device-width, initial-scale=1">
    <link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet">
    <link href = "https://getbootstrap.com/docs/5.3/assets/css/docs.css" rel = "stylesheet">
    <title>Bootstrap Example</title>
    <script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
  </head>
  <body class = "p-3 m-0 border-0 bd-example m-0 border-0 bd-example-row">

    <!-- Example Code -->
    
        
    <div class = "container text-center">
      <div class = "row">
        <div class = "col-sm-4 mx-1">
        </div>
        <div class = "col mx-1">
        <div class = "row">
          <div class = "col mx-1"></div>
          <div class = "col mx-1"></div>
          <div class = "col mx-1"></div>
          <div class = "col mx-1"></div>
        </div>
        <div class = "row">
          <div class = "col mx-1"></div>
          <div class = "col mx-1"></div>
          <div class = "col mx-1"></div>
          <div class = "col mx-1"></div>
        </div>
        </div>
      </div>
      <div class = "row">
        <div class = "col mx-1"></div>
        <div class = "col mx-1"></div>
        <div class = "col mx-1"></div>
        <div class = "col mx-1"></div>
        <div class = "col mx-1"></div>
        <div class = "col mx-1"></div>
        <div class = "col mx-1"></div>
      </div>
      <div class = "row">
      <div class = "col mx-1"></div>
      <div class = "col mx-1"></div>
      <div class = "col mx-1"></div>
      <div class = "col mx-1"></div>
      <div class = "col mx-1"></div>
      <div class = "col mx-1"></div>
      <div class = "col mx-1"></div>
    </div>
    </div>

ссылка на скрипку: https://jsfiddle.net/2hdmwgpL/

Нет, это не так. Пожалуйста, проверьте ваш вывод.

Paulie_D 11.07.2024 20:37

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