将显示图像垂直居中于固定高度的Bootstrap轮播

5er*_*ant 2 javascript css jquery twitter-bootstrap twitter-bootstrap-3

也许这是最棘手的挑战之一,如何在这个固定高度Bootstrap (v3.3.5)旋转木马上显示图像的中间垂直对齐?我尝试了display一些类作为它们table-cellvertical-align它们middle但是仍然存在问题,滑动图像将在滑动完成时或在何时垂直对齐,.active但它也将图像放在右侧而不是中心.

/* The styles that I tried.
.carousel-inner > .item.next.left,
.carousel-inner > .item.prev.right,
.carousel-inner > .item.active {
    display: table-cell;
    vertical-align: middle;
} */

.carousel-inner > .item {
    height: 150px;
}

.carousel-inner img {
    margin: auto;
}
Run Code Online (Sandbox Code Playgroud)
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
            <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
            <li data-target="#carousel-example-generic" data-slide-to="1"></li>
            <li data-target="#carousel-example-generic" data-slide-to="2"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
            <div class="item active">
                <img src="http://placehold.it/350x65" alt="350x65">
                <div class="carousel-caption">
                    <h3>Item 1</h3>
                    <p>Not vertically center..</p>
                </div>
            </div>
            <div class="item">
                <img src="http://placehold.it/350x150" alt="350x150">
                <div class="carousel-caption">
                    <h3>Item 2</h3>
                    <p>The image height is just fit..</p>
                </div>
            </div>
            <div class="item">
                <img src="http://placehold.it/200x100" alt="200x100">
                <div class="carousel-caption">
                    <h3>Item 3</h3>
                    <p>Not vertically center..</p>
                </div>
            </div>
        </div>

        <!-- Controls -->
        <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
        </a>
    </div>


    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

ale*_*r.s 7

将此添加到您的CSS:

.carousel-inner .item img {
    position:relative;
    top:50%;
    transform: translateY(-50%);
}
Run Code Online (Sandbox Code Playgroud)