5

这里的例子:http: //jsfiddle.net/D7v2Y/

在 firefox/webkit 中这很好用。文本居中。不在 IE10 或 IE9 中

input {
    display: block;
    box-sizing: border-box;
    line-height: 50px;
    height: 50px;
    padding: 10px;
}

这里发生了什么?如何让文本输入“正确”显示,文本在 IE 中垂直居中?

谢谢!

4

3 回答 3

14

您需要协调paddingline-height。有了box-sizing: border-box,他们本质上是在为同一个房地产而战。

换句话说,您是在说“将 50px 的行高放入 50px 的总垂直空间中,但也要将其填充 20px”。

line-height一个简单的解决方案是减少padding* 2 + line-height= 50px。或者,如果你想要更多line-height,减少填充。如果要保持相同line-height 填充,请将高度增加到 70px。

示例:http: //jsfiddle.net/D7v2Y/11/

input {
    display: block;
    box-sizing: border-box;
    line-height: 30px;
    height: 50px;
    padding: 10px;
}
于 2013-05-25T02:26:44.270 回答
2

我添加了一个字体大小,这似乎可以解决问题:

input {
    display: block;
    box-sizing: border-box;
    line-height: 1.0;
    font-size: 20px;
    height: 50px;
    padding: 10px;
}

有点奇怪......但这似乎是一种方法。

小提琴:http: //jsfiddle.net/audetwebdesign/Y2rd4/

盒子尺寸

我注意到与 Firefox 相比,在 IE10/9 中 box-sizing 属性计算的高度不同。如果省略该属性,则输入字段的呈现方式更加相似。

于 2013-05-25T02:27:21.533 回答
-2

填充在 IE8 中破坏了它,上帝只知道为什么....

只需删除填充

于 2013-05-25T02:20:26.410 回答