2013-12-16 11 views
11

enter image description heresegnaposto di input problema line-height

Qual è il problema?

C'è una casella di immissione con altezza 36 pixel come mostrato nell'immagine sopra. In IE10 il segnaposto non è al centro verticale.

+0

Si prega di postare il css che si applica agli ingressi? È complicato vedere cosa potrebbe causarlo senza il codice. – Advocation

+0

Se si utilizza l'altezza della linea: provare ad aggiungere 'vertical-align: middle' al testo – RononDex

+1

Non è necessario' line-height', condividere il codice completo http://jsfiddle.net/VNrsQ/ –

risposta

18

Per tutti gli ingressi solo dare

line-height:normal; 

ci vorrà normale line-height e funziona bene in tutti i browser.

+2

Sorprendentemente ha funzionato come un fascino –

+1

Quindi, perché è normale non lo standard, ottima risposta! Ha funzionato come un fascino. –

-1

tenta di utilizzare questa:

vertical-align:middle; 
+0

L'ho provato, tuttavia non ha funzionato. – Tushar

+0

@downvoters cosa c'è che non va? –

-1

Soluzione 1:
ingressi uso senza segnaposto:

<input type="text" class="generalInput" value="Topic" onBlur="javascript:if(this.value==''){this.value=this.defaultValue; strechInput(this.id , 'c');}" onFocus="javascript:if(this.value==this.defaultValue){this.value=''; strechInput(this.id , 's');}">


Soluzione 2:

uso questo script per aggiungere css separato per ogni browser

var browsers = ['Firefox' , 'Safari'];//and so on 
    var browser = 'unknown'; 
    for(var i = 0 ; i < browsers.length ; i++) 
    { 
     if(window.navigator.userAgent.indexOf(browsers[i]) != -1) 
      browser = browsers[i]; 
    } 
    var head = document.getElementsByTagName("head"); 
    var css = document.createElement("link"); 
    css.setAttribute('href' , './' + browser.toLowerCase() + '.css'); 
    css.setAttribute('rel' , 'stylesheet'); 
    (head[0]).appendChild(css); 



Soluzione 3:
uso commenti HTML

<!--[if IE]> 
    <link rel="stylesheet" href="./ie.css"> 
<![ENDIF]--> 
+0

Grazie per la tua risposta, tuttavia ho riscontrato problemi con l'allineamento verticale del segnaposto, penso che tu abbia condiviso la risposta sopra per avere un segnaposto. – Tushar

+0

@Tushar sì, hai ragione, ma ho appena messo questo per chiunque altro ha bisogno e per maggiori informazioni. – Soosh

0

È possibile utilizzare waterwark js per risolvere questo problema.

http://jsfiddle.net/maxim75/yJuF3/

Partenza violino.

<input type="text" id="Text1" /> 
+0

Ho riscontrato problemi con l'allineamento verticale del segnaposto, penso che tu abbia condiviso sopra la demo per avere un segnaposto. – Tushar

+0

Sì, solo l'aggiunta di proprietà segnaposto nel tag di input non garantisce l'allineamento di esso perfettamente su ogni browser. Quindi, se lo desideri, puoi utilizzare la soluzione JS del watermark. – Anup

0

per chi viene a questo fine - ho trovato una soluzione che ha funzionato a Twitter Bootstrap (3.1), così come un paio di altri test mi sono imbattuto.

semplicemente aggiungere l'elemento di input:

height: inherit; 
vertical-align: middle; 
1

Io di solito impostare un altezza e line-height al input [type = text] ed ereditare queste proprietà per :: segnaposto.

height: inherit; 
line-height: inherit; 
0

Soluzione:

Applicato stessa 36px linea-altezza input [type = "text"].

Effetto collaterale:

Prima di dare line-height: 36px stava funzionando benissimo in tutti i browser.Come ho applicato 36px line-height di input [type = "text"], di seguito è quello che è successo in Safari:

enter image description here

seconda soluzione:

Applicare line-height con IE mod . Questo è il seguente

input[type="text"] { 
    line-height: 36px\9; // CSS Hack only for IE. 
} 
Problemi correlati