'Bootstrap CSS Carousel Not working after float?

I am implementing a carousel in bootstrap but I am having two problems.

  1. It is not aligned horizontally (my div are going downwards).
  2. It is not working when I used the float: left property.

I don't understand what I'm doing wrong. I've tried a variety of things to fix this, but nothing seems to work.

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<section class="internships" id="internships">
  <div class="container headings text-center mt-4">
    <h1 class="text-center font-weight-bold font-size mb-4">
      Internships</h1>
  </div>
  <div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel">
    <div class="carousel-inner">
      <div class="carousel-item active d-flex flex-row bd-highlight mb-3 ">
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
        <div class="row d-flex flex-row bd-highlight mb-3">
          <div class="col-lg-4 col-md-4 col-12 ">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
      </div>
      <div class="carousel-item">
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" alt="" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-lg-4 col-md-4 col-12">
            <div class="box">
              <a href="#"><img src="Images/IMG.jpg" class="img-fluid" srcset=""></a>
              <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur error tempora maxime, suscipit dolorem asperiores ! </p>
            </div>
          </div>
        </div>
      </div>
      <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next"></button>
      </div>
    </div>
</section>


Solution 1:[1]

Is this what you would like ?

testing

If it is, then you have to work on some initial bootstrap classes to find a work-around the active class.

Why ?

The active class passes the element on display : block when you want to use a row (which uses display : flex). So every time you're item is active, it goes back to being a block and sets vertically.

Then when you'll use the buttons, it will trigger the carousel.item-next / carousel.item-prev classes and they also use... display : block ! So you'll need to change them to display : flex too.


This is what you'll need in your CSS :

.carousel-item.active{
    display: flex;
}
.carousel-item-next{
    display: flex;
}
.carousel-item-prev{
    display: flex;
}

Then you'll need to work on your HTML :

you'll need to change the carousel-item class to : <div class="carousel-item active row">

inside that row, the children must be set using widths/cols from bootstrap. Such as : <div class="col-3> (3 if you want it to use one fourth of the carousel - it's what i used on the image up there)

Finally, here's a picture illustrating the HTML part, you'll need to repeat the HTML for each slide you'll be using :

Second picture to illustrate the HTML

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1