如何在范围输入上垂直居中标签

时间:2014-02-14 00:50:41

标签: css html5

这看起来很简单,但它给我带来了很多麻烦。我已经尝试过使用this method了,它似乎不起作用,你可以在这里看到:http://jsfiddle.net/ENuLz/。浮动标签和输入似乎是朝着正确方向迈出的一步,但我仍然无法弄明白。

jsfiddle代码:

<div>
    <label for="myslider">Slider:</label>
    <input type="range" id="myslider" min="1" max="100" />
</div>

的CSS:

div {
    display: table-cell;
    vertical-align: middle;
    height: 50px;
    border: 1px solid red;
}

解决方案: http://jsfiddle.net/ENuLz/17/

^这似乎适用于最新版本的chrome,firefox和ie。

5 个答案:

答案 0 :(得分:4)

以下是垂直居中元素的代码

div {
    display: table-cell;
    vertical-align: middle;
    height: 50px;
    border: 1px solid red;
}

div label
{
    vertical-align:middle;

}

#myslider
{
    vertical-align:middle;

}

jsFiddle:http://jsfiddle.net/ENuLz/16/

答案 1 :(得分:1)

这是垂直对齐方式:

在HTML中:

<div>
    <label for="myslider">Slider:</label>
    <input type="range" min="1" max="100" />
</div>

在CSS中:

 div {
    display: table-cell;
    vertical-align: middle;
    height: 50px;
    border: 1px solid red;
}
.lblFloat
{
    float:left;
}

http://jsfiddle.net/ENuLz/4/

答案 2 :(得分:0)

我将此css添加到div中包含的标签:

div label {
    display:block;
    width:100%;
    text-align:center;
}

它会将标签置于滑块上方,我相信这就是您所要求的。

FIDDLE

答案 3 :(得分:0)

添加

label {    
    display: block;
}

答案 4 :(得分:0)

有了 flexbox ,我们现在有了另一个解决方案。我们只需要align-items

div {
  /* Use flexbox and center items vertically */
  display: flex;
  align-items: center;
  /* The following aren't needed, they just help us to see the effect */
  height: 3rem;
  padding: 1rem;
  border: 1px dotted #555;
}
<div>
  <label for="myslider">Slider:</label>
  <input type="range" min="1" max="100">
</div>