我有一个jQuery UI滑块和两个相邻的按钮,我想将滑块垂直放在按钮旁边。
我创造了一个小提琴,展示了我想要实现的目标:http://jsfiddle.net/cKv34/
#button1, #button2 {
float: right;
}
#wrapper {
overflow: hidden;
display: block;
padding: 10px;
}
#slider {
float: left;
width: 100%;
}
...
<button id="button1">Button1</button>
<button id="button2">Button2</button>
<span id="wrapper"><div id="slider"></div></span>
我几乎就在那里,但是现在我在滑块的包装跨度元素上使用了一个固定的填充,这让我感到烦恼。
有没有办法在不使用常数值的情况下实现居中?
<子> 我可以接受任何建议,因为我是一名CSS新手(我已根据this回答我的小提琴)。 子>
答案 0 :(得分:2)
我已经完成了非常聪明的方式,通过使用jQuery在页面加载后找到所需的值,然后相应地调整CSS。
这是一个fiddle,这里是jQuery:
var btnHeight = $('#button1').height(),
slideHeight = $('#slider').height(),
buffer = ((btnHeight - slideHeight)/2);
$('#wrapper').height(btnHeight), // set span to button height
$('#slider').css({'margin-top':buffer}); // set margin accordingly
我曾多次尝试使用CSS解决问题,但我遇到了你所遇到的同样的问题,我认为这些问题源于你的HTML结构。如果元素不包含在同一个DOM元素中,则很难将元素相对于另一个元素对齐。因此,从HTML结构开始,#wrapper
与按钮的对齐比#slider
更容易。我将您的#wrapper
调整为按钮的高度,然后使用一点数学运算将#slider
向下调整。
如果您将包装器放在整个元素集,滑块和按钮周围而不仅仅是滑块上,如果这不会破坏您的布局,那么您可能会有更多的运气。如果DOM结构不能给2个元素一个明确的引用,即通过成为同一个父元素的子元素,那么你通常不得不依赖于像LESS或jQuery这样的库来让你计算和存储值以便以后进行比较
<强> [编辑] 强>
我保持左/右填充但从滑块上移除了顶部/底部,因为问题是关于垂直对齐。
答案 1 :(得分:-1)
以下css
可能会对您有所帮助
#button1, #button2 {
float: right;
}
#wrapper {
overflow: hidden;
display: block;
position:relative;
top:13px;
}
#slider {
float: left;
width: 98%;
}