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="support@socialpic.org" style="text-align: center" name="email" />
    <!<input type="submit" value="submit" />  
</form>

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

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


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

7

Vous pouvez faire comme ceci:

    <center>
    <form action="" method="POST">
    <input type="text" class="emailField" placeholder="support@socialpic.org" style="text-align: center" name="email" />
    <input type="submit" value="submit" />  
</form>
    </center>

Code de travailPen ici


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

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

2

Vous pouvez essayer comme ceci:

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

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

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
}

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">
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.