2011-09-11 28 views
116

Come si può centrare l'allineamento del segnaposto del campo di input in formato html?Campo HTML Testo di input Campo segnaposto

Sto usando il seguente codice, ma non funziona:

CSS ->

input.placeholder { 
    text-align: center; 
} 
.emailField { 
    top:413px; 
    right:290px; 
    width: 355px; 
    height: 30px; 
    position: absolute; 
    border: none; 
    font-size: 17; 
    text-align: center; 
} 

HTML ->

<form action="" method="POST"> 
    <input type="text" class="emailField" placeholder="[email protected]" style="text-align: center" name="email" /> 
    <!<input type="submit" value="submit" /> 
</form> 
+0

Potete mostrare il codice HTML? – Will

+0

Non proprio una risposta, ma jQuery Mobile fa questo, quindi potresti voler vedere come lo realizzano. – Evans

+0

Per me, il tuo codice funziona quando ti sbarazzi del bit 'input.placeholder'. Allineare il testo all'interno dell'input al centro allinea anche il segnaposto. – IamGuest

risposta

219

Se si desidera modificare solo lo stile segnaposto

::-webkit-input-placeholder { 
    text-align: center; 
} 

:-moz-placeholder { /* Firefox 18- */ 
    text-align: center; 
} 

::-moz-placeholder { /* Firefox 19+ */ 
    text-align: center; 
} 

:-ms-input-placeholder { 
    text-align: center; 
} 
+3

Funziona bene per la maggior parte dei campi di input, ma non per la data del tipo. Sai come farlo funzionare anche per data? –

70
input{ 
    text-align:center; 
} 

è tutto ciò che serve.

Working example in FF6. Questo metodo non sembra compatibile con browser diversi.

Il precedente CSS stava tentando di centrare il testo di un elemento di input che aveva una classe di "segnaposto".

+3

Non voglio centrare il segnaposto così come il testo inserito nel campo –

+1

Sì. Questo è ciò che fa questo esempio. Il segnaposto _is_ testo nel campo. –

+2

non funziona nell'esempio. Nell'esempio, il segnaposto è allineato a sinistra. –

6

L'elemento segnaposto HTML5 può essere impostato per quei browser che accettano l'elemento, ma in modi diversi, come potete vedere qui: http://davidwalsh.name/html5-placeholder-css.

Ma non credo che il text-align sarà interpretato dai browser. Almeno su Chrome, questo attributo è ignorato. Ma puoi sempre cambiare altre cose, come color, font-size, font-family ecc. Ti suggerisco di ripensare il tuo progetto se è possibile rimuovere questo comportamento centrale.

EDIT

Se si vuole veramente questo testo centrato, si può sempre usare un po 'di codice jQuery o plugin per simulare il comportamento segnaposto. Eccone un esempio: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html.

In questo modo lo stile funzionerà:

input.placeholder { 
    text-align: center; 
} 
6

Funziona bene per le mie esigenze, si dovrebbe verificare la compatibilità per il browser, Non ho avuto problemi perché non mi interessava la compatibilità con le versioni precedenti

.inputclass::-webkit-input-placeholder { 
text-align: center; 
} 
.inputclass:-moz-placeholder { /* Firefox 18- */ 
text-align: center; 
} 
.inputclass::-moz-placeholder { /* Firefox 19+ */ 
text-align: center; 
} 
.inputclass:-ms-input-placeholder { 
text-align: center; 
} 
+1

Questa risposta non è una copia diretta di un'altra risposta? – Anwar

+1

@Anwar nah, stai vivendo solo Déjà vu – konzo

2

Si può fare in questo modo:

<center> 
    <form action="" method="POST"> 
    <input type="text" class="emailField" placeholder="[email protected]" style="text-align: center" name="email" /> 
    <input type="submit" value="submit" /> 
</form> 
    </center> 

Working CodePen here

+0

Solo questo funziona per me. Forse gli stili aggiunti in HTML hanno più priorità o sovrascrivono tutti gli altri stili. – Gokul

0
::-webkit-input-placeholder { 
font-size: 14px; 
color: #d0cdfa; 
text-transform: uppercase; 
text-transform: uppercase; 
text-align: center; 
font-weight: bold; 
} 
:-moz-placeholder { 
font-size:14px; 
color: #d0cdfa; 
text-transform: uppercase; 
text-align: center; 
font-weight: bold; 
} 
::-moz-placeholder { 
font-size: 14px; 
color: #d0cdfa; 
text-transform: uppercase; 
text-align: center; 
font-weight: bold; 
} 
:-ms-input-placeholder { 
font-size: 14px; 
color: #d0cdfa; 
text-transform: uppercase; 
text-align: center; 
font-weight: bold; 
} 
0

si può provare in questo modo:

input[placeholder] { 
    text-align: center; 
} 
Problemi correlati