2013-04-09 14 views
5

Fondamentalmente mi piacerebbe che uno span e un elemento input prendessero la stessa quantità di spazio verticale, in modo da allineare correttamente il testo nelle due caselle. Posso ottenere questo facilmente abbastanza facilmente quando non fluttuano gli elementi. Ma non appena aggiungo una proprietà float, alcuni pixel extra vengono aggiunti all'altezza dell'elemento di input. E non posso per la vita di me capire perché sia ​​così.Perché fluttuare un elemento di input cambia la sua altezza?

E come lo risolvo?

Questo problema esiste su Safari su iOS 6 e Chrome sul desktop. Accade anche in Firefox, ma gli effetti sono leggermente diversi.

ho creato this fiddle che mostra il mio problema.

<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

non è fluttuante la durata in realtà la rimozione dalla sua altezza? Tutto è 17 ma l'intervallo fluttuato è 15. – dewyze

+0

Vero! Ben osservato! Modificato il titolo. – oligofren

risposta

2

Due cose. Sembra che fluttuare l'input gli dia un margine di 2px, che puoi rimuovere facilmente. Se lo fai e rimuovi l'attributo line-height, tutto sembra allineare su entrambi i fronti.

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 ... Ti sto dando la risposta, dal momento che hai effettivamente risposto a quello che ho chiesto. Peccato che quello che stavo chiedendo non era quello che volevo rispondere: p Il problema originale stava mostrando su iPhone, e ho provato a replicarlo con lo snippet sopra riportato. Ma ahimè, i due non erano la stessa cosa, si è scoperto. Cercherò un po 'più difficile la prossima volta per creare uno snippet equivalente che _actually_, non solo apparentemente, replica il problema. – oligofren

+0

Haha, mi dispiace! Se fai una nuova domanda, farò del mio meglio per rispondere, ma non sono così abile con le cose per iPhone. – dewyze

Problemi correlati