我有一个光滑的滑块,我想垂直对齐图像
a
元素。我尝试了高度为 100% 的 vertical-align:middle;
;并尝试了更多,但我还没有找到解决方案。我也尝试过使用 <span class="helper"></span
,就像我在 stackoverflow 上的 this 解决方案中找到的那样(jsfiddle)。希望大家能帮帮我。
我的滑块 HTML 如下:
.slick-slide {
margin: 0px 20px;
}
.slick-slide img {
width: 100%;
}
.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}
<div class="container-fluid">
<h2 class="text-center text-secondary">Partners</h2>
<section class="customer-logos slider">
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
<a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
</section>
</div>
当然包括 jQuery 和 slick.js。 您可以在here看到演示,但带有方形图像。我的图像不是方形的,所以我需要垂直对齐水平滑块中的图像。
提前致谢!
将其添加到您的 Jquery 中。如果您添加以下代码,它将解决您的问题。 它为所有图像提供了高度和位置。
$( ".slick-slide" ).each(function( index ) {
$( this ).css('margin-top',
($('.slider').height()-$(this).height())/2+'px' );
});
在你灵活的功能中
$(document).ready(function(){
$('.customer-logos').slick({
slidesToShow: 6,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 1500,
arrows: false,
dots: false,
vertical: true,
pauseOnHover: false,
responsive: [{
breakpoint: 768,
settings: {
slidesToShow: 4
}
}, {
breakpoint: 520,
settings: {
slidesToShow: 3
}
}]
});
});
vertical: true;
<--- only add this. This will set your images vertical
apetrakow,slick 的开发者之一,回答了这个问题。
https://github.com/kenwheeler/slick/issues/2351
当您禁用浮动和 分配显示:内联块;给他们。
只需添加这个:
.slick-slide {
display: inline-block;
vertical-align: middle;
float:none;
}