所以我一直在寻找以下问题的解决方案:
引导轮播能够扩展图像以适应容器。这一切都很好,花花公子。当您拥有不同高度的图像时,问题就出现了。
轮播将扩展其容器的高度以适应图像,可以通过以下方式修复:
.container.banner .carousel-inner {
height:500px;
}
现在,当我尝试偏移图像以便您可以看到中间而不是顶部时,问题就来了。我的意思是因为所有图像都将具有不同的高度,我需要将<img>
标签内的内容移向顶部。
我找到了一些人一些描述使用背景图像的解决方案,但为了这篇文章,我希望远离这种可能性。
所以tl; dr:我如何在轮播中垂直移动图像 X 量。
这是我的代码: HTML:
<div class="container banner">
<div id="myCarousel" class="carousel slide">
<div class="carousel-inner">
<div class="active item">
<img src="img/carousel/Carousel.jpg" alt="">
</div>
<div class="item">
<img src="img/carousel/Carousel (2).jpg" alt="">
</div>
<div class="item">
<img src="img/carousel/Carousel (3).jpg" alt="">
</div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel"
data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel"
data-slide="next">›</a>
</div>
</div>
CSS
.container.banner .carousel-inner {
height:500px;
}
.container.banner .carousel-inner img{
/*something to move the image*/
/*top:5px; This doesnt work dynamically, percentage doesnt react*/
}
编辑:
好吧,如果您执行以下操作:
.container.banner .carousel-inner .item{
position:relative;
width:100%;
bottom: 47%;
}
.container.banner .carousel-inner .item img{
width:100%;
}
您会得到类似解决方案的东西,但是!根据图像,它可能会过多或过少。理想情况下,图像中心必须位于轮播的中间。这就是我当前的问题...
编辑2:答案
因此,以下将设法稍微偏移图像以使其垂直居中。
<script type="text/javascript">
$(document).ready(function () {
$( ".container.banner .carousel-inner .item" ).each(function( index ) {
$(this).css("margin-top",-(($(this).height())/4) + 'px');
}
)});
</script>
将此添加到 HTML 的末尾将允许对象在轮播上垂直“居中”,而与图像可能具有的高度无关。另外不要忘记根据<img>
原始帖子将标签的宽度设置为 100%。
最后的评论:感谢@bleuscyther 的解决方案。