我一直在努力让我的内容垂直对齐,但实际上没有解决它。我尝试了adaptiveHeight参数,但它确实没有达到我想要的效果。
小提琴:http://jsfiddle.net/fmo50w7n/400
这就是代码的样子 HTML:
<section class="slider">
<div style="width:500px;height:200px">slide1</div>
<div style="width:500px;height:300px;">slide2</div>
<div style="width:500px;height:100px;">slide3</div>
</section>
CSS:
$c1: #3a8999;
$c2: #e84a69;
.slider {
width: auto;
margin: 30px 50px 50px;
}
.slick-slide {
background: $c1;
color: white;
padding: 40px 0;
font-size: 30px;
font-family: "Arial", "Helvetica";
text-align: center;
}
.slick-prev:before,
.slick-next:before {
color: black;
}
.slick-dots {
bottom: -30px;
}
.slick-slide:nth-child(odd) {
background: $c2;
}
JS:
$(".slider").slick({
autoplay: true,
dots: true,
variableWidth:true,
responsive: [{
breakpoint: 500,
settings: {
dots: false,
arrows: false,
infinite: false,
slidesToShow: 2,
slidesToScroll: 2
}
}]
});
这个解决方案对我有用:
.slick-track {
display: flex;
}
.slick-track .slick-slide {
display: flex;
height: auto;
align-items: center;
justify-content: center;
}
请参阅此处的示例:
我认为,你需要在段落或标题中放置文本、内容,这样你就可以只与特定内容而不是整个 div 进行交流。
然后在 CSS 中执行以下操作:
p {
margin: auto;
position: absolute;
top: 50%; left: 50%;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
您可能还需要给出宽度。
它的作用是改变段落生成位置的原点,而不是从左上角,而是使用transform:translate从元素的中心生成。然后使用绝对定位以及顶部和左侧百分比为 50% 将其与父元素的中间对齐。
由于我还在自学,所以我会尽力帮助你,祝你好运。 :)
来源:https://css-tricks.com/centering-percentage-widthheight-elements/
我也一直在尝试解决这个问题。我找到了两种可以解决问题的方法。
.slick-slide .slidecontainer {
display: inline-block;
vertical-align: middle;
float:none;
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: flex;
align-items: center;
}
第二种方法适用于大多数用例。
apetrakow,slick 的开发者之一,回答了这个问题。
https://github.com/kenwheeler/slick/issues/2351
当您禁用浮动和 分配显示:内联块;给他们。
只需添加这个:
.slick-slide {
display: inline-block;
vertical-align: middle;
float:none;
}