Warum wird Text in Eingaben anders platziert als in Spannen oder Textbereichen?

8

Ich versuche ein jQuery-Plugin zu erstellen, das das HTML5 placeholder -Attribut fälscht (wie ). Dazu füge ich ein <span> vor dem entsprechenden <input> oder <textarea> ein und duplizierst das Styling.

Leider habe ich festgestellt, dass Browser den Text auf magische Weise in <input> s als <span> s oder <textarea> s platzieren, wie in Ссылка - Der Text ist in <input> vertikal zentriert, obwohl Web Inspector angibt, dass das Styling in allen drei identisch ist. Der Effekt wird in Safari, Chrome und Firefox angezeigt.

Tricks, die nicht funktioniert haben:

  • vertical-align: middle; , vertical-align: text-bottom;
  • display: inline-block;

Die Twitter-Anmeldeseite täuscht das Attribut placeholder vor, aber sie umgehen dieses Problem, indem sie <span> und <input> / <textarea> in einem containing <div> einschließen und die <span> für eine visuelle Übereinstimmung manuell formatieren Dies ist keine Option für ein Plugin, das automatisch ausgeführt werden muss.

    
stilist 18.05.2011, 21:03
quelle

1 Antwort

9

Das Zuweisen einer Zeilenhöhe, die der Elementhöhe entspricht, sollte funktionieren. Sieh diese Gabel deiner ursprünglichen Geige sozusagen: Ссылка .

Eine schnelle Browserüberprüfung hat gezeigt, dass es in IE 9, IE 6 sowie den neuesten Mac-Versionen von Firefox, Chrome und Safari ordnungsgemäß gerendert wird. Ich habe nichts von dem existierenden CSS von dem ursprünglichen Link geändert, sondern nur eine Zeile hinzugefügt:

%Vor%     
Lane 18.05.2011, 21:15
quelle

Tags und Links