我已获得以下代码:
HTML:
<div class="label">Middle</div>
<div id='sliderdiv'>
<input type="range" value="50" min="0" max="100" />
</div>
CSS:
.label {
position: absolute;
margin-top: 13px;
margin-left: auto;
margin-right: auto;
z-index: 3;
}
input.ui-slider-input {
display: none !important;
}
#sliderdiv .ui-slider-track {
margin-left: 15px;
}
但是我不能把我的文本div放在中心,是否有解决这个问题的方法,或者用css是不可能的?
我可以使用javascript动态计算它,但我想避免这种情况。
以下是您的实时代码:http://jsfiddle.net/VmwQM/
编辑:
这不是我想要的:
.label {
position: absolute;
margin-top: 13px;
margin-left: 50%;
z-index: 3;
}
因为我希望我的文字中间率为50%而不是我的文字以50%开头。
答案 0 :(得分:4)
答案 1 :(得分:3)
你可以试试这个:
<强> Fiddle here 强>
.label {
position:absolute;
top:11px;
width:100%;
z-index: 3;
text-align:center;
}
input.ui-slider-input {
display: none !important;
}
#sliderdiv .ui-slider-track {
margin-left: 15px;
}
祝你好运..
答案 2 :(得分:1)
您无法使用margin:auto定位元素,它们位于绝对位置。它们的display-attribute自动设置为 inline 。
jQuery-Solution可以是:
var left = $(window).width() / 2 - $('.label').width() / 2;
$('.label').css('left',left+'px');
答案 3 :(得分:0)
margin: 0 auto
不适用于绝对定位的元素。只需将left
或right
属性设置为50%:
.label {
position: absolute;
margin-top: 13px;
left: 50%;
z-index: 3;
}
不要忘记绝对定位是根据父母计算的。除了该示例之外,您可能还有其他标记会影响position: absolute
在应用.label
时所执行的操作
答案 4 :(得分:0)
答案 5 :(得分:0)
HTML
<div class="slide-holder">
<div id='sliderdiv'>
<input type="range" value="50" min="0" max="100" />
</div>
</div>
CSS
.slide-holder {
text-align: center;
}
#sliderdiv {
display: inline-block;
}
答案 6 :(得分:0)
如果给出宽度值,您可以将其居中:
.label {
position: absolute;
margin: 13px auto auto;
width: 3rem;
right: 0; left: 0;
}
对中心绝对元素的更多信息