Firefox和Chrome中的输入高度差异

时间:2011-08-29 11:38:12

标签: css cross-browser

为什么Chrome中的高度大于输入的Firefox

请参阅此处示例http://jsfiddle.net/jitendravyas/89Msh/1/

select, input, textarea, button {
    font: 99% sans-serif;
}

input, select {
    vertical-align: middle;
}

body, select, input, textarea {
    color: #444444;
}

button, input, select, textarea {
    margin: 0;
}


input, textarea {
    font-family: inherit;

    line-height: 1.5;
}


input {
    border: 0 none;
    font-size: 32px;
    line-height: 1.1;
    margin-right: 29px;
    padding: 3px 3px 0;
    width: 206px;
    border-radius: 7px;
}

7 个答案:

答案 0 :(得分:58)

问题基本上是line-height

Chrome看到line-height非常像height而Firefox看不到。

为输入添加高度可以解决问题,但您应该注意line-heightheight匹配。

例如:height: 20px; line-height: 20px;

http://jsfiddle.net/e2agj/1/ - 最后一个示例输入是正确的。

答案 1 :(得分:1)

我通常使用padding代替高度来推动输入的总高度。这样做,我不必为Chrome和Firefox的不同解释而斗争。

答案 2 :(得分:1)

我遇到了同样的问题,必须将line-heightpadding结合起来才能让事情发挥作用。

答案 3 :(得分:1)

只需尝试溢出:隐藏在输入

答案 4 :(得分:0)

我认为这与您为font设置input样式的方式有关。

select, input, textarea, button {
    font: 99% sans-serif;
}

每个浏览器都有自己的sans-serif渲染,因为它实际上不是字体。

因此,如果没有特定的字体集,您可能会出现一些不一致的情况。

答案 5 :(得分:0)

这适用于Chrome&选择元素上的Firefox:

height: 20px;
padding: 0;

答案 6 :(得分:0)

我在 Firefox Chrome & Opera 浏览器。所以我将线高,高度和字体大小结合起来以获得合适的外观。

input {                   
        line-height: 45px;
        height: 45px;
        font-size: 45px;
      }