Bootstrap carousel width and height

前端 未结 8 1509
不思量自难忘°
不思量自难忘° 2020-12-12 20:55

Im trying to do a bootstrap carousel with full width for the images (width: 100%) and a fixed height but if I set the width to 100% the height automacally is taking the 100%

相关标签:
8条回答
  • 2020-12-12 21:04

    Hey guys i had the same problem,

    my height changed to its original height while my slide was animating to the left, ( in a responsive website )

    so i fixed it with CSS only :

    .carousel .item.left img{
        width: 100% !important;
    }
    
    0 讨论(0)
  • 2020-12-12 21:09

    If you use bootstrap 4 Alpha and you have an error with the height of the images in chrome, I have a solution: The documentation of bootstrap 4 says this:

    <div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
      <div class="carousel-inner" role="listbox">
        <div class="carousel-item active">
          <img class="d-block img-fluid" src="..." alt="First slide">
        </div>
        <div class="carousel-item">
          <img class="d-block img-fluid" src="..." alt="Second slide">
        </div>
        <div class="carousel-item">
          <img class="d-block img-fluid" src="..." alt="Third slide">
        </div>
      </div>
    </div>
    

    Solution:

    The solution is to put "div" around the image, with the class ".container", like this:

    <div class="carousel-item active">
      <div class="container">
        <img src="images/proyecto_0.png" alt="First slide" class="d-block img-fluid">
      </div>
    </div>
    
    0 讨论(0)
  • 2020-12-12 21:19

    I recommend the following for Bootstrap 3

    .carousel-inner > .item > img,
    .carousel-inner > .item > a > img {
      min-height: 500px;    /* Set slide height here */
    
    }
    
    0 讨论(0)
  • 2020-12-12 21:24

    I know this is an older post but Bootstrap is still alive and kicking!

    Slightly different to @Eduardo's post, I had to modify:

    #myCarousel.carousel.slide {
        width: 100%; 
        max-width: 400px; !important
    }
    

    When I only modified .carousel-inner {}, the actual image was fixed size but the left/right controls were displaying incorrectly off to the side of the div.

    0 讨论(0)
  • 2020-12-12 21:25

    I have created a responsive sample that works well for me and I find it to be quite simple have a look at my carousel-fill:

    .carousel-fill {
        height: -o-calc(100vh - 165px) !important;
        height: -webkit-calc(100vh - 165px) !important;
        height: -moz-calc(100vh - 165px) !important;
        height: calc(100vh - 165px) !important;
        width: auto !important;
        overflow: hidden;
        display: inline-block;
        text-align: center;
    }
    
    .carousel-item {
        text-align: center !important;
    }
    

    my navigation height+footer are a hair less then 165px so that value works for me. take off a value that fits for you, I overrdide the .carousel-item from bootstrap so make sure by videos are centered.

    my carousel looks like this, note the "carousel-fill" on the video tag.

    <div>
            <div id="myCarousel" class="carousel slide carousel-fade text-center" data-ride="carousel">
                <!-- Indicators -->
                <ol class="carousel-indicators">
                    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
                    <li data-target="#myCarousel" data-slide-to="1"></li>
                    <li data-target="#myCarousel" data-slide-to="2"></li>
                    <li data-target="#myCarousel" data-slide-to="3"></li>
                </ol>
    
                <!-- Wrapper for slides -->
                <div class="carousel-inner">
                    <div class="carousel-item active">
                        <video autoplay muted class="carousel-fill">
                            <source src="~/Video/CATSTrade.mp4" type="video/mp4">
                            Your browser does not support the video tag.
                        </video>
                        <div class="carousel-caption">
                            <h2>CATS IV Trade engine</h2>
                            <p>Automated trading for high ROI</p>
                        </div>
                    </div>
                    <div class="carousel-item">
                        <video muted loop class="carousel-fill">
                            <source src="~/Video/itrs.mp4" type="video/mp4">
                        </video>
                        <div class="carousel-caption">
                            <h2>Machine learning</h2>
                            <p>Machine learning specialist</p>
                        </div>
                    </div>
                    <div class="carousel-item">
                        <video muted loop class="carousel-fill">
                            <source src="~/Video/frequency.mp4" type="video/mp4">
                        </video>
                        <div class="carousel-caption">
                            <h3>Low latency development</h3>
                            <p>Create ultra fast systems with our consultants</p>
                        </div>
                    </div>
                    <div class="carousel-item">
                        <img src="~/Images/data pipeline faded.png" class="carousel-fill" />
    
                        <div class="carousel-caption">
                            <h3>Big Data</h3>
                            <p>Maintain, generate, and host big data</p>
                        </div>
                    </div>
                </div>
    
                <!-- Left and right controls -->
                <a class="carousel-control-prev" href="#myCarousel" 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="#myCarousel" data-slide="next">
                    <span class="carousel-control-next-icon" aria-hidden="true"></span>
                    <span class="sr-only">Next</span>
                </a>
            </div>
        </div>
    

    in case some one needs to control the videos like i do, I start and stop the videos like this:

    <script language="JavaScript" type="text/javascript">
            $(document).ready(function () {
                $('.carousel').carousel({ interval: 8000 })
                $('#myCarousel').on('slide.bs.carousel', function (args) {
                    var videoList = document.getElementsByTagName("video");
                    switch (args.from) {
                        case 0:
                            videoList[0].pause();
                            break;
                        case 1:
                            videoList[1].pause();
                            break;
                        case 2:
                            videoList[2].pause();
                            break;
                    }
                    switch (args.to) {
                        case 0:
                            videoList[0].play();
    
                            break;
                        case 1:
                            videoList[1].play();
                            break;
                        case 2:
                            videoList[2].play();
                            break;
                    }
                })
    
            });
    </script>
    
    0 讨论(0)
  • 2020-12-12 21:26

    Are you trying to make it responsive? If you are then I would just recommend the following:

    .tales {
      width: 100%;
    }
    .carousel-inner{
      width:100%;
      max-height: 200px !important;
    }
    

    However, the best way to handle this responsively would be thru the use of media queries like such:

    /* Smaller than standard 960 (devices and browsers) */
    @media only screen and (max-width: 959px) {}
    
    /* Tablet Portrait size to standard 960 (devices and browsers) */
    @media only screen and (min-width: 768px) and (max-width: 959px) {}
    
    /* All Mobile Sizes (devices and browser) */
    @media only screen and (max-width: 767px) {}
    
    /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
    @media only screen and (min-width: 480px) and (max-width: 767px) {}
    
    /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
    @media only screen and (max-width: 479px) {}
    
    0 讨论(0)
提交回复
热议问题