回答がすでに受け入れられていることは知っていますが、動的な高さで機能する代替手段と方法を提供しているだけです。
矢印が単に a の内側にあるの<a href=#">←</a>
か、 span の内側にあるのかはわかりませんでした<a href=#"><span>←</span></a>
。それらがスパン内にない場合は、jQuery で追加する必要があります。
静的な幅と高さ: FIDDLE .
// Add span-wrappers around controls
$("a.controls").each(function() {
$(this.firstChild).wrap("<span></span>");
});
// Position arrows vertically
$("a.controls > span").css("top", function() {
var thisH = $(this).height(),
parentH = $(this).parent().height(),
thisTop = (parentH/2) - (thisH/2);
return thisTop;
});
現在、動的/流動的なレイアウトを使用している場合、トップ値が 1 回しか計算されないため、これはうまく機能しません。ウィンドウのサイズが変更されるたびに値を再計算する必要があります。ここを見てください。
// Keep aspect ratio of div
function slideHeight() {
$("#slide-container").height(function() {
var $this = $(this),
w = $this.width() / 2.133;
return w;
});
}
slideHeight();
// Add span-wrappers around controls
$("a.controls").each(function() {
$(this.firstChild).wrap("<span></span>");
});
// Position arrows vertically
function arrowPos() {
$("a.controls > span").css("top", function() {
var thisH = $(this).height(),
parentH = $(this).parent().height(),
thisTop = (parentH / 2) - (thisH / 2);
return thisTop;
});
}
arrowPos();
//Execute functions on resize
$(window).resize(function() {
slideHeight();
arrowPos();
});
ほら。:)