Search code examples
htmlcssbootstrap-4responsiveowl-carousel

Get properly sized brand logos in a carousel


I'm trying to achieve an automatic resizing of different brand logos for a company website I'm designing, inside an Own Carousel. The idea is for each logo to be of reasonable size.

Most of the logos are in SVG formats, available at https://wetransfer.com/downloads/44eb123d186e30519edc2d025dafd03420200110231646/112373 (for a week) : as you would see, they have a wide range of height / width ratio, so using a fixed-width and enforcing the correct ratio made some of them (the CNRS and CEA logos) too high.

The goal (taken from a random site): The goal

What I got: What I got

My code (HTML, then CSS based on Bootstrap 4, then the JS snippet that uses owl-carousel):

     <div class="site-section">
        <div class="container">
          <div class="row justify-content-center text-center mb-5">
            <div class="col-md-5">
              <h2 class="section-heading">Ils nous ont fait confiance</h2>
            </div>
          </div>
          <div class="row justify-content-center text-center">
            <div class="col">
              <div class="owl-carousel clients-carousel">
                <img src="./img/clients/airbus-group.svg" class="client-logo limit-width" />
                <img src="./img/clients/safran-group.png" class="client-logo limit-width" />
                <img src="./img/clients/cnrs-fr.svg" class="client-logo limit-height" />
                <img src="./img/clients/cea-fr.svg" class="client-logo limit-height" />
                <img src="./img/clients/bic.svg" class="client-logo limit-width" />
                <img src="./img/clients/edf.svg" class="client-logo limit-width" />
                <img src="./img/clients/horiba.svg" class="client-logo limit-width" />
                <img src="./img/clients/jenoptec-group.svg" class="client-logo limit-width" />
                <img src="./img/clients/otis.svg" class="client-logo limit-width" />
                <img src="./img/clients/thales.svg" class="client-logo limit-width" />
              </div>
            </div>
          </div>
        </div>
      </div>
.clients-carousel .owl-stage-outer, .clients-carousel .owl-stage, .clients-carousel .owl-item {
  display: flex;
}
.clients-carousel .owl-item {
  margin-left: 1rem;
  margin-right: 1rem;
}
.clients-carousel .owl-item img.client-logo {
  width: 15em;
  height: auto;
}
var siteOwlCarousel = function() {
    $('.clients-carousel').owlCarousel({
          center: true,
        items: 3,
        loop: true,
        margin: 0,
        autoplay: true,
        smartSpeed: 1000,
      nav:false,
      dots:false,
      autoWidth:true,
      responsive: {
        // breakpoint from 0 up
        0 : {
          items: 3
        },
        // breakpoint from 576 up
        576 : {
          items: 3
        },
        // breakpoint from 768 up
        768 : {
          items: 4,
          center: false
        },
        992 : {
          items: 4,
          center: false
        },
        1200 : {
          items: 4,
          center: false
        }
      }
        });
  };
  siteOwlCarousel();

Would somebody have an idea that relies on Flexbox?

Thanks in advance!

choumat


Solution

  • Change .owl-wrapper display property and owl-item display, float, vertical-align properties and set to max- width & height size.

    I hope below snippet will help you lot.

    var siteOwlCarousel = function() {
      $('.clients-carousel').owlCarousel({
        center: true,
        items: 3,
        loop: true,
        margin: 10,
        autoplay: true,
        smartSpeed: 1000,
        nav: false,
        dots: false,
        autoWidth: true,
        responsive: {
          0 : {
            items: 2
          },
          576 : {
            items: 3
          },
          768 : {
            items: 4
          },
          992 : {
            items: 4
          },
          1200 : {
            items: 4
          }
        }
      });
    };
    siteOwlCarousel();
    .owl-carousel .owl-wrapper {
      display: table!important;
    }
    .owl-carousel .owl-item {
      display: table-cell!important;
      float: none!important;
      vertical-align: middle!important;
    }
    .clients-carousel .owl-item .item{
      text-align: center!important;
      padding: 15px 30px!important;
    }
    .clients-carousel .owl-item img{
      max-width: 180px!important;
      max-height: 50px!important;
      display: inline-block!important;
    }
    <link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
    
    <div class="site-section">
      <div class="container">
        <div class="row justify-content-center text-center mb-5">
          <div class="col-md-5">
            <h2 class="section-heading">Ils nous ont fait confiance</h2>
          </div>
        </div>
        <div class="row justify-content-center text-center">
          <div class="col">
            <div class="owl-carousel clients-carousel">
              <div class="item"><img src="./img/clients/airbus-group.svg"></div>
              <div class="item"><img src="./img/clients/safran-group.png"></div>
              <div class="item"><img src="./img/clients/cnrs-fr.svg"></div>
              <div class="item"><img src="./img/clients/cea-fr.svg"></div>
              <div class="item"><img src="./img/clients/bic.svg"></div>
              <div class="item"><img src="./img/clients/edf.svg"></div>
              <div class="item"><img src="./img/clients/horiba.svg"></div>
              <div class="item"><img src="./img/clients/jenoptec-group.svg"></div>
              <div class="item"><img src="./img/clients/otis.svg"></div>
              <div class="item"><img src="./img/clients/thales.svg"></div>
            </div>
          </div>
        </div>
      </div>
    </div>