2010-08-07 15 views
5

Attualmente sto lavorando con una casella di testo che ha uno sfondo. Mi stavo chiedendo se è possibile centrare il testo (verticalmente) all'interno della casella di testo.Centrare il testo (verticalmente) all'interno di una casella di testo utilizzando i CSS

importante: è perfettamente centrato in firefox. Solo IE lo scrive troppo alto per qualche motivo. Ho provato l'altezza della linea, il riempimento e il margine. Niente funziona. Qualche idea?

MODIFICA: questo è il mio attuale CSS. Devo dire che ho provato il metodo margin-top e non ha funzionato per me. Inoltre, come ho detto, questo è solo per IE. Ho fogli di stile specifici di IE quindi nessun problema.

.textValue { color: black; font-size: 12px; font-family: David, sans-serif; } 
input { width: 110px; padding: 0 2px; padding-right: 4px; height: 20px; border: solid 1px white; margin-bottom: 0px; background: url(../images/contactTextBg.png) no-repeat top right; } 
label { float: right; margin-left: 5px; font-size: 13px; } 

Per IE, ho il seguente:

.textValue { font-size: 14px; } 

come per HTML:

  <tr> 
       <td><label for="name">name</label></td> 
       <td><input type="text" name="name" id="name" class="textValue" value="" /></td> 
      </tr> 

Grazie, Amit

+0

Quando dici "textbox" intendi Robusto

+0

Mostraci cosa hai in termini di CSS, così possiamo dare un'occhiata. .. – NinjaCat

risposta

7

Mi chiedo come si è in grado di allineare il testo in una casella di testo ma, come dici tu, ecco il suggerimento:

Per idiota IE, è possibile utilizzare questo hack specifica IE:

margin-top:50px; /* for standard-compliant browsers */ 
*margin-top:50px; /* for idiot IE */ 
_margin-top:50px; /* for idiot IE */ 

Si potrebbe desiderare di provare altre proprietà simili, se si vuole, piuttosto che margin-top.

+0

Grazie per il tuo suggerimento. Ho finito per usare padding-top e impostarlo su "input" .Questo sembrava funzionare.Grazie! – Amit

+0

@Amit: Sei il benvenuto :) – Sarfraz

+3

@Sarfraz: ti dispiacerebbe rimuovere il tuo odio? y commenti riguardo a IE? Non aggiungono alcun valore alla tua risposta, al contrario. ** idiota IE ** tre volte in un post - questo mi ha infastidito molto mentre leggevo questa risposta e non dovrebbe essere così su stackoverflow, penso: – Oliver

2

Hai provato ?:

input {vertical-align: middle;} 
+0

Sì, ho provato l'allineamento verticale, l'ho risolto usando padding-top e applicandolo al selettore "input", grazie però! – Amit

+0

NP, sarebbe stato m Prima suppongo, ma pensavo avessi detto che l'avevi provato, ma sembra che tu abbia appena provato margine, scusami;) –

2

So che questo è un po 'vecchio, ma ho appena incontrato lo stesso problema. La soluzione qui fornita non mi aiutava, il che sembrava strano. Nel mio caso era l'altezza della linea impostata su "1em". Cambiare l'altezza della linea in qualcosa che somigliava all'altezza della casella di testo, piuttosto che la dimensione del carattere che conteneva era la soluzione. Anche questo continua a funzionare come previsto in Firefox, ecc.

+0

Interessante ... Ricordo di aver provato "line-height" e di averlo non funzionante. Sono contento che abbia funzionato per te :) – Amit

Problemi correlati