Robert Lepen
Robert Lepen

Reputation: 79

Split Bootstrap4 Carousel-item in two

Hei guys, I would like to split each slide in two, one part for picture and one part for description, look at the picture. It's a bootstrap 4 and I didn't find any solution, I just found examples for bootstrap 3 which is not working for me.

I used simple grid <div class="col-lg-6"> but didn't work, just pushed description under the image.

Thank you!

Picture - Something like this

<div id="demo" class="carousel slide" data-ride="carousel">
  <!-- The slideshow -->
  <div class="carousel-inner">
    <div class="carousel-item active">
        <div class="col-lg-6"> 
          <img src="http://lorempixel.com/400/200/" alt="Los Angeles" width="400" height="200">
        </div>
        <div class="col-lg-6"> 
          <h3>Firste caption</h3>
          <p>Loren ipsun</p>
        </div>
    </div>
    <div class="carousel-item ">
        <div class="col-lg-6"> 
          <img src="http://lorempixel.com/400/200/" alt="Los Angeles" width="400" height="200">
        </div>
        <div class="col-lg-6"> 
          <h3>Firste caption</h3>
          <p>Loren ipsun</p>
        </div>
    </div>
    <div class="carousel-item ">
        <div class="col-lg-6"> 
          <img src="http://lorempixel.com/400/200/" alt="Los Angeles" width="400" height="200">
        </div>
        <div class="col-lg-6"> 
          <h3>Firste caption</h3>
          <p>Loren ipsun</p>
        </div>
    </div>
  </div>
</div>

Upvotes: 3

Views: 2292

Answers (1)

tao
tao

Reputation: 90038

Place .rows inside .carousel-items and .col-*s inside .rows. like this:

...
<div class="carousel-item ">
  <div class="row">
    <div class="col-lg-6"> 
      <img src="http://lorempixel.com/400/200/" alt="Los Angeles" width="400" height="200">
    </div>
    <div class="col-lg-6"> 
      <h3>Firste caption</h3>
      <p>Loren ipsun</p>
    </div>
  </div>
</div>
...

If you want the carousel to remain split at lower widths, you might want to swap col-lg-6 with col-md-6, col-sm-6 or even col-6 (which in v4 means it will remain split on all widths).


Here's an example:

.carousel-item {
  background-color: #424242;
  color: white;
  min-height: 220px;
}
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" rel="stylesheet"/>

<div id="carouselExample" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <div class="row">
        <div class="col-6">
          <img class="d-block w-100" src="http://lorempixel.com/304/220/" alt="First slide">
        </div>
        <div class="col-6 d-flex align-items-center">
          <div>
            <h2>Title</h2>
            <p>Lorem ipsum</p>
          </div>
        </div>
      </div>
    </div>
    <div class="carousel-item">
      <div class="row">
        <div class="col-6">
          <img class="d-block w-100" src="http://lorempixel.com/304/220/nightlife/" alt="Second slide">
        </div>
        <div class="col-6 d-flex align-items-center">
          <div>
            <h2>Title</h2>
            <p>Lorem ipsum</p>
          </div>
        </div>
      </div>
    </div>
    <div class="carousel-item">
      <div class="row">
        <div class="col-6">
          <img class="d-block w-100" src="http://lorempixel.com/304/220/sports/" alt="Third slide">
        </div>
        <div class="col-6 d-flex align-items-center">
         <div>
          <h2>Title</h2>
          <p>Lorem ipsum</p>
          </div>
        </div>
      </div>
    </div>
  
  <a class="carousel-control-prev" href="#carouselExample" 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="#carouselExample" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Upvotes: 1

Related Questions