我正在摆弄Jquery Cycle幻灯片并尝试添加几个按钮。如果没有top: #px;
tomfoolery,我似乎无法将它们对齐;我喜欢将它垂直对齐到div的中间位置。
CSS
#slidecontainer {
margin-left: auto;
margin-right: auto;
position: relative;
width: 800px;
height: 200px;
}
.slidecontrols {
top: 50px;
position: absolute;
z-index: 100;
width: 100%;
}
.slidecontrols a {
background-color: white;
}
.slidecontrols a.next {
position: absolute;
right: 0;
}
.slideshow {
width: 100%;
height: 100%;
}
.bannered {
height: 200px;
width: 800px;
}
HTML
<div id="slidecontainer">
<div class="slideshow" id="slideoptions">
<img src="http://i.imgur.com/ufZ0cxL.jpg" class="bannered" alt="" /></a>
<img src="http://i.imgur.com/RZTrFy4.jpg" class="bannered" alt="" /></a>
</div>
<div class="slidecontrols">
<a href="#" class="next">right</a>
<a href="#" class="prev">left</a>
</div>
</div>
Here's a Fiddle。将vertical-align: middle;
添加到.slidecontrols
绝对没有任何作用。
答案 0 :(得分:2)
如果您不想猜测或设置任何像素,可以选择其他选项:
.slidecontrols {
top: 50%;
position: absolute;
z-index: 100;
width: 100%;
-webkit-transform: translate(0, -50%);
transform: translate(0, -50%);
}
答案 1 :(得分:1)
制作顶部:50%的幻灯片控制,使链接准确对齐中心。
.slidecontrols {
top: 50%;
position: absolute;
z-index: 100;
width: 100%;
}
如果您认为按钮的高度为20px,则另一个可能性
top: calc(50% - 10px); // 10px is half of buttons height
这会将它完全对齐在中心
如果您有position: absolute
,则垂直对齐将无效。
答案 2 :(得分:1)
假设控件的高度为20px
,您可以使用top
值50%
,然后使用负margin-top
值的一半元素&#39;高度。在这种情况下,-10px
。
.slidecontrols {
top: 50%;
margin-top: -10px;
position: absolute;
z-index: 100;
width: 100%;
}
或者,如果您需要动态高度的解决方案:
.slidecontrols {
position:absolute;
top:0; right:0;
bottom:0; left:0;
z-index: 100;
width: 100%;
height:100%;
display:table;
}
.slidecontrols a {
display:table-cell;
vertical-align:middle;
}