Espace réservé de champ de texte d'entrée HTML central

154

Comment puis-je centrer l'alignement de l'espace réservé du champ de saisie dans un formulaire html?

J'utilise le code suivant, mais cela ne fonctionne pas:

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>
max_
la source
Ce n'est pas vraiment une réponse, mais jQuery Mobile fait cela, vous voudrez peut-être voir comment ils y parviennent.
Evanss
Pour moi, votre code fonctionne lorsque vous vous débarrassez du input.placeholderbit. L'alignement du texte à l'intérieur de l'entrée au centre aligne également l'espace réservé.
Cannicide

Réponses:

284

Si vous souhaitez modifier uniquement le style d'espace réservé

::-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; 
}
prarthana.m
la source
5
Cela fonctionne bien pour la plupart des champs de saisie, mais pas pour le type de date. Savez-vous comment le faire fonctionner aussi pour la date?
Cornelius Parkin
92
input{
   text-align:center;
}

est tout ce dont vous avez besoin.

Exemple de travail dans FF6. Cette méthode ne semble pas compatible avec plusieurs navigateurs.

Votre CSS précédent tentait de centrer le texte d'un élément d'entrée qui avait une classe de "placeholder".

Jamie Dixon
la source
5
Je ne veux pas centrer l'espace réservé ainsi que le texte saisi dans le champ
max_
1
Oui. C'est ce que fait cet exemple. L'espace réservé est du texte dans le champ.
Jamie Dixon du
2
cela ne fonctionne pas dans l'exemple. Dans l'exemple, l'espace réservé est aligné à gauche.
max_
Attention, si vous utilisez des bibliothèques telles que Bootstrap ou Semantic UI, vous devez ajouter le style en ligne, c'est- <input type="text" placeholder="Search..." style="text-align: right;">à- dire pour que cela fonctionne. Ou ajoutez important!à votre règle CSS si vous utilisez des fichiers externes.
Behdad
Il semble que le problème que vous rencontrez max_ est simplement un problème de compatibilité du navigateur. Cela fonctionne bien dans la plupart des principaux navigateurs, à l'exception de Safari.
Cannicide
7

L'élément d'espace réservé HTML5 peut être stylisé pour les navigateurs qui acceptent l'élément, mais de différentes manières, comme vous pouvez le voir ici: http://davidwalsh.name/html5-placeholder-css .

Mais je ne pense pas que cela text-alignsera interprété par les navigateurs. Au moins sur Chrome, cet attribut est ignoré. Mais vous pouvez toujours changer d' autres choses, comme color, font-size, font-familyetc. Je vous suggère de repenser votre conception si possible de supprimer ce comportement central.

ÉDITER

Si vous voulez vraiment que ce texte soit centré, vous pouvez toujours utiliser du code jQuery ou un plugin pour simuler le comportement de l'espace réservé. En voici un exemple: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html .

De cette façon, le style fonctionnera:

input.placeholder {
    text-align: center;
}
Erick Petrucelli
la source
7

Vous pouvez faire comme ceci:

    <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>

Code de travailPen ici

Ian David Bocioaca
la source
Seulement cela fonctionne pour moi. Peut-être que les styles ajoutés en HTML ont plus de priorité ou remplacent tous les autres styles.
Gokul le
5

Cela fonctionne bien pour mes besoins, vous devriez vérifier la compatibilité de votre navigateur, je n'ai pas eu de problèmes car je ne me souciais pas de la compatibilité descendante

.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; 
}
Denis
la source
3
Cette réponse n'est-elle pas une copie directe d'une autre réponse?
Anwar
3

vous pouvez également utiliser cette méthode pour écrire des css pour l'espace réservé

input::placeholder{
   text-align: center;
}
Ankit Jaiswal
la source
2

Vous pouvez essayer comme ceci:

input[placeholder] {
   text-align: center;
}
Rani Utami
la source
1
::-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;
}
Rudresh Bhatt
la source
0

En utilisant l'extrait de code ci-dessous, vous sélectionnez l'espace réservé à l'intérieur de votre entrée, et tout code placé à l'intérieur n'affectera que l'espace réservé.

input::-webkit-input-placeholder {
      text-align: center
}
Brandon May
la source
Cette réponse ne semble pas offrir quelque chose de différent par rapport à la réponse acceptée .
Anton Menshov
Cette réponse donne un indice sur la façon de modifier l'espace réservé d'un seul élément spécifique par opposition à tous les espaces réservés. Par exemple .foo::-webkit-input-placeholder { … }.
Henrik N
0

Vous pouvez utiliser set dans une classe comme ci-dessous et définir pour saisir la classe de texte
CSS:

 .place-holder-center::placeholder {
        text-align: center;
    }

HTML:

<input type="text" class="place-holder-center">
Mohammad Daliri
la source