为什么浮动输入元素会改变其高度?

时间:2013-04-09 15:44:22

标签: css css-float height

基本上我希望span和input元素占用相同数量的垂直空间,以便正确对齐两个框中的文本。当不浮动元素时,我可以很容易地实现这一点。但是只要我添加一个浮动属性,就会在输入元素的高度上添加一些额外的像素。我无法理解为什么会这样。

我该如何解决?

iOS 6上的Safari和桌面上的Chrome存在此问题。在Firefox中也会发生,但效果有所不同。

我创建了显示问题的this fiddle

<input class='float' value="some text" id='input2'/>
<span class='float' id='text2'>some text</span><br />

input, span {
    font-family: Helvetica;
    font-weight: bold;
    font-size: 15px;
    line-height: 15px;
    padding: 0px;
    border: 0px;
}

input {
    text-align: right;
}

.float {
    float: right;
}

1 个答案:

答案 0 :(得分:2)

两件事。似乎浮动输入给它一个2px的边距,你可以轻松删除。如果你这样做并删除了line-height属性,那么一切似乎都在两个方面排列。

http://jsfiddle.net/cYaa2/4/

input, span {
    font-family: Helvetica;
    font-weight: bold;
    font-size: 15px;
    padding: 0px;
    border: 0px;
}

input {
    text-align: right;
}

.float {
    float: right;
}

input.float {
    margin:0px;
}