Platzhalter für HTML-Eingabetextfeld zentrieren


153

Wie kann ich die Ausrichtung des Platzhalters des Eingabefelds in einem HTML-Formular zentrieren?

Ich verwende den folgenden Code, aber er funktioniert nicht:

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>

Nicht wirklich eine Antwort, aber jQuery Mobile tut dies, sodass Sie vielleicht sehen möchten, wie sie es erreichen.
Evanss

Für mich funktioniert Ihr Code, wenn Sie das input.placeholderBit loswerden . Durch Ausrichten des Texts innerhalb der Eingabe zur Mitte wird auch der Platzhalter ausgerichtet.
Cannicide

Antworten:


283

Wenn Sie nur den Platzhalterstil ändern möchten

::-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
Dies funktioniert gut für die meisten Eingabefelder, jedoch nicht für das Typdatum. Wissen Sie, wie Sie es auch für Datum funktionieren lassen können?
Cornelius Parkin

92
input{
   text-align:center;
}

ist alles, was du brauchst.

Arbeitsbeispiel in FF6. Diese Methode scheint nicht browserübergreifend kompatibel zu sein.

Ihr vorheriges CSS hat versucht, den Text eines Eingabeelements zu zentrieren, das eine Klasse von "Platzhalter" hatte.


5
Ich möchte den Platzhalter sowie den in das Feld
eingegebenen

1
Ja. Dies ist, was dieses Beispiel tut. Der Platzhalter ist Text im Feld.
Jamie Dixon

2
Im Beispiel funktioniert es nicht. Im Beispiel ist der Platzhalter linksbündig ausgerichtet.
max_

Beachten Sie, dass Sie, wenn Sie Bibliotheken wie Bootstrap oder Semantic UI verwenden, den Stil inline hinzufügen müssen, <input type="text" placeholder="Search..." style="text-align: right;">damit er funktioniert. Oder fügen Sie important!Ihrer CSS-Regel hinzu, wenn Sie externe Dateien verwenden.
Behdad

Es sieht so aus, als ob das Problem, das Sie mit max_ haben, nur ein Problem der Browserkompatibilität ist. Dies funktioniert in den meisten gängigen Browsern außer Safari einwandfrei.
Cannicide

7

Das HTML5-Platzhalterelement kann für die Browser gestaltet werden, die das Element akzeptieren, jedoch auf unterschiedliche Weise, wie Sie hier sehen können: http://davidwalsh.name/html5-placeholder-css .

Aber ich glaube nicht, dass text-aligndas von den Browsern interpretiert wird. Zumindest in Chrome wird dieses Attribut ignoriert. Aber man kann immer andere Dinge ändern, wie color, font-size, font-familyusw. Ich schlage vor , Sie Ihr Design , ob möglich Umdenkens dieses Zentrum Verhalten zu entfernen.

BEARBEITEN

Wenn Sie diesen Text wirklich zentrieren möchten, können Sie jederzeit einen jQuery-Code oder ein Plugin verwenden, um das Platzhalterverhalten zu simulieren. Hier ist ein Beispiel davon: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html .

Auf diese Weise funktioniert der Stil:

input.placeholder {
    text-align: center;
}

7

Sie können so machen:

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

Working CodePen hier


Nur das funktioniert bei mir. Möglicherweise erhalten in HTML hinzugefügte Stile mehr Priorität oder überschreiben alle anderen Stile.
Gokul

5

Es funktioniert gut für meine Bedürfnisse, Sie sollten die Kompatibilität für Ihren Browser überprüfen. Ich hatte keine Probleme, weil mir die Abwärtskompatibilität egal war

.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
Ist diese Antwort nicht eine direkte Kopie einer anderen Antwort?
Anwar

3

Sie können auch diese Methode verwenden, um CSS für Platzhalter zu schreiben

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

2

Sie können Folgendes versuchen:

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

Wenn Sie das folgende Codefragment verwenden, wählen Sie den Platzhalter in Ihrer Eingabe aus, und jeder darin platzierte Code wirkt sich nur auf den Platzhalter aus.

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

Diese Antwort scheint nichts anderes zu bieten als die akzeptierte Antwort .
Anton Menshov

Diese Antwort gibt einen Hinweis darauf, wie der Platzhalter nur eines bestimmten Elements im Gegensatz zu allen Platzhaltern geändert werden kann. ZB .foo::-webkit-input-placeholder { … }.
Henrik N

0

Sie können set in einer Klasse wie unten verwenden und set eingeben, um die Textklasse
CSS einzugeben :

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

HTML:

<input type="text" class="place-holder-center">
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.