Bootstrap Выровнять по горизонтали данные из API

У меня есть carousel, а внутри этого carousel у меня есть карты, и каждая карта должна быть выровнена по крайней мере по горизонтали, но в моем случае она выровнена по вертикали.

Данные взяты из самого API.

    /*
    container.innerText = "It's working!\n\n";
    container.innerText += 'Found sample products:\n';
    products.forEach(product => (container.innerText += `- ${product.title}\n`));
    */
    var products = [
  {
    "imageUrl": "http://lorempixel.com/g/400/200",
    "title": "CANDECOR"
  },
  {
    "imageUrl": "http://lorempixel.com/g/400/200",
    "title": "ZOLAREX"
  },
  {
    "imageUrl": "http://lorempixel.com/g/400/200",
    "title": "HATOLOGY"
  },
  {
    "imageUrl": "http://lorempixel.com/g/400/200",
    "title": "EGYPTO"
  },
  {
    "imageUrl": "http://lorempixel.com/g/400/200",
    "title": "BULLZONE"
  },
  {
    "imageUrl": "http://lorempixel.com/g/400/200",
    "title": "NIKUDA"
  }
];
    var countFirstThree = true;
    var isCardSet = true;
    var setCount = 1;
    for (var i = 1; i < products.length; i++) {
      if (isCardSet) {
        $('.carousel-inner').append(insertCarouselItem(countFirstThree, setCount));
        isCardSet = false;
      }
      if (i % 3 == 0) {
        $('#set-' + setCount).append(insertCards(products[i - 1].id, products[i - 1].imageUrl, products[i - 1].title));
        $('#set-' + setCount).append('</div>');
        countFirstThree = false;
        isCardSet = true;
        setCount++;
      } else {
        $('#set-' + setCount).append(insertCards(products[i - 1].id, products[i - 1].imageUrl, products[i - 1].title));
      }
    }


function getUrlImage(url) {
  const host = 'http://localhost:8181';
  return "http://lorempixel.com/g/400/200";
}

function insertCarouselItem(isActive, set) {
  var active = isActive ? ' active' : '';
  var result = `<div id = "set-${set}" class = "carousel-item${active}">`;

  return result;
}

function insertCards(id, imageUrl, title) {
  var result = `
  <div id = "${id}" class = "card" style = "width: 300px;">
    <img class = "card-img-top" src = "${getUrlImage(imageUrl)}">
    <div class = "card-body">
      <h3 class = "card-title">${title}</h3>
      <button class = "btn btn-primary">Add to cart</button>
    </div>
  </div>`;
  return result;
}
  <link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
    integrity = "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin = "anonymous">

  <div class = "container-fluid">
    <div id = "productCarousel" class = "carousel slide" data-ride = "carousel" data-interval = "false">
      <div class = "carousel-inner">

      </div>
      <a class = "carousel-control-prev" href = "#productCarousel" role = "button" data-slide = "prev">
        <span class = "carousel-control-prev-icon" aria-hidden = "true"></span>
        <span class = "sr-only">Previous</span>
      </a>
      <a class = "carousel-control-next" href = "#productCarousel" role = "button" data-slide = "next">
        <span class = "carousel-control-next-icon" aria-hidden = "true"></span>
        <span class = "sr-only">Next</span>
      </a>
    </div>
  </div>

  <script src = "https://code.jquery.com/jquery-3.3.1.slim.min.js"
    integrity = "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    crossorigin = "anonymous"></script>
  <script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
    integrity = "sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
    crossorigin = "anonymous"></script>
  <script src = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
    integrity = "sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
    crossorigin = "anonymous"></script>

но результат, который я сделал, выглядит так: Bootstrap Выровнять по горизонтали данные из API

Чего я хочу добиться, так это того, чтобы карты были выровнены horizontally.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Попробуйте добавить d-flex к вашему carousel-inner div

p {
  background: red;
}

.carousel-item {
  display: block !important;
  float: none !important;
  width: auto !important;
  margin-right: 0 !important;
}
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity = "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin = "anonymous">
<div class = "container-fluid">
  <div class = "carousel slide">
    <div class = "carousel-inner d-flex">
      <div class = "carousel-item">
        <div id = "123" class = "card" style = "width: 300px;">
          <img class = "card-img-top" src = "${getUrlImage(imageUrl)}">
          <div class = "card-body">
            <h3 class = "card-title">Title</h3>
            <button class = "btn btn-primary">Add to cart</button>
          </div>
        </div>
      </div>
      <div class = "carousel-item">
        <div id = "321" class = "card" style = "width: 300px;">
          <img class = "card-img-top" src = "${getUrlImage(imageUrl)}">
          <div class = "card-body">
            <h3 class = "card-title">Title</h3>
            <button class = "btn btn-primary">Add to cart</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

`

Привет, @Nidhin Joseph, я пытался использовать класс d-flex, но это не сработало... Я использовал d-flex, обернув свой carousel-inner, и использовал mr-2, чтобы обернуть свой carousel-item, я правильно понял или сделал что-то не так в своей реализации? пожалуйста, дайте мне знать.

Alvin Quezon 28.07.2019 11:21

Можете ли вы предоставить скрипт с примером кода, пожалуйста? d-flex в идеале должно работать.

Nidhin Joseph 28.07.2019 11:23

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

Nidhin Joseph 28.07.2019 11:27

вот рабочий пример, которую я создал jsfiddle.net/78ayp9gs, я попробовал ту, которую вы предоставили некоторое время назад, но она тоже не сработала.

Alvin Quezon 28.07.2019 11:31

в вашей скрипте, можете ли вы заменить localhost на var, содержащий результат json, пожалуйста?

Nidhin Joseph 28.07.2019 11:33

Давайте продолжить обсуждение в чате.

Alvin Quezon 28.07.2019 11:46

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