2013-04-09 14 views
5

Grundsätzlich möchte ich, dass ein Span und ein Eingabeelement die gleiche Menge an vertikalem Raum einnehmen, um den Text in den beiden Boxen richtig auszurichten. Ich kann das ganz einfach erreichen, wenn ich die Elemente nicht schwebe. Aber sobald ich eine float-Eigenschaft hinzufüge, werden einige zusätzliche Pixel zur Höhe des Eingabeelements hinzugefügt. Und ich kann nicht für das Leben von mir verstehen, warum das so ist.Warum verändert das Floaten eines Eingabeelements seine Höhe?

Und wie repariere ich es?

Dieses Problem besteht bei Safari auf iOS 6 und Chrome auf dem Desktop. Kommt auch in Firefox vor, aber die Effekte sind etwas anders.

Ich erstellte this fiddle, die mein Problem zeigt.

<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

schwimmt nicht die Spanne Entfernen tatsächlich von ihm Höhe ist? Alles ist 17 aber die schwebende Spannweite ist 15. – dewyze

+0

Wahr! Gut beobachtet! Der Titel wurde geändert. – oligofren

Antwort

2

Zwei Dinge. Es scheint zu schweben, die Eingabe gibt ihm einen 2px Rand, den Sie leicht entfernen können. Wenn Sie das tun und das Linienhöhenattribut entfernen, scheint sich alles in beiden Punkten zu befinden.

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; 
} 
+0

Hmm ... Ich gebe dir die Antwort, da du tatsächlich beantwortet hast, was ich gefragt habe. Schade, dass das, was ich gefragt habe, nicht das war, was ich wollte beantwortet: p Das ursprüngliche Problem wurde auf dem iPhone angezeigt, und ich habe versucht, es mit dem obigen Snippet zu replizieren. Aber leider waren die beiden nicht gleich, wie sich herausstellte. Ich werde das nächste Mal etwas härter versuchen, ein äquivalentes Snippet zu erstellen, das _actually_, nicht nur scheinbar, das Problem repliziert. – oligofren

+0

Haha, Entschuldigung! Wenn Sie eine neue Frage stellen, werde ich mein Bestes geben, um sie zu beantworten, aber ich bin nicht so geschickt mit iPhone Sachen. – dewyze

Verwandte Themen