input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中, 在FF下出现的情况是:点击input时,输入光标其实上跟input的height一样高,但当开始输入文字时,光标又变得跟文字一样高, chrome下光标跟input的height一样高, 而IE下光标跟文字的大小一致。

input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中,

在FF下出现的情况是:点击input时,输入光标其实上跟input的height一样高,但当开始输入文字时,光标又变得跟文字一样高,

chrome下光标跟input的height一样高,

而IE下光标跟文字的大小一致。

input输入框用一个背景图模拟,设置 height和 line-height一样的高度,使里面的输入文字能够居中,

FF下出现的情况是:点击 input时,输入光标其实上跟 input的 height一样高,但当开始输入文字时,光标又变得跟文字一样高,

chrome下光标跟 input的 height一样高,

IE下光标跟文字的大小一致。

一直没弄明白为什么这样子,后来才知道原因所在。

初步结论如下:

IE:不管该行有没有文字,光标高度与 font-size一致。

FF:该行有文字时,光标高度与 font-size一致。该行无文字时,光标高度与 input的 height一致。

Chrome:该行无文字时,光标高度与 line-height一致;该行有文字时,光标高度从 input顶部到文字底部 (这两种情况都是在有设定 line-height的时候 ),如果没有 line-height,则是与 font-size一致。

解决的方案:

input的 height设定一个较小的高度,然后用 padding去填充,基本上可以解决所有浏览器的问题

input{
height: 16px;
padding: 4px 0px;
font-size: 12px;