2013-12-16 12 views
11

enter image description hereEingang Platzhalter line-height Ausgabe

Was ist das Problem?

Es gibt ein Eingabefeld mit der Höhe 36px wie in obigem Bild gezeigt. In IE10 Platzhalter ist nicht vertikal in der Mitte.

+0

Können Sie bitte die CSS, die für die Eingänge gilt posten? Es ist schwierig zu sehen, was es ohne den Code verursachen könnte. – Advocation

+0

Wenn Sie Zeilenhöhe verwenden: Versuchen Sie, 'vertical-align: middle' zum Text hinzuzufügen – RononDex

+1

Sie brauchen nicht' line-height', teilen Sie Ihren vollständigen Code http://jsfiddle.net/VNrsQ/ –

Antwort

18

Für alle Eingänge geben nur

line-height:normal; 

es normal line-height statt und wird in allen Browsern funktionieren.

+2

Überraschenderweise funktioniert wie Charme –

+1

Also warum ist normal nicht der Standard, große Antwort tho! Lief wie am Schnürchen. –

-1

Versuchen Sie, diese zu nutzen:

vertical-align:middle; 
+0

Ich hatte das versucht, aber es hat nicht funktioniert. – Tushar

+0

@ downvoters was ist los? –

-1

Lösung 1:
Verwendung Eingänge ohne Platzhalter:

<input type="text" class="generalInput" value="Topic" onBlur="javascript:if(this.value==''){this.value=this.defaultValue; strechInput(this.id , 'c');}" onFocus="javascript:if(this.value==this.defaultValue){this.value=''; strechInput(this.id , 's');}">


Lösung 2:

Verwendung dieses Skript hinzufügen separate CSS für jeden Browser

var browsers = ['Firefox' , 'Safari'];//and so on 
    var browser = 'unknown'; 
    for(var i = 0 ; i < browsers.length ; i++) 
    { 
     if(window.navigator.userAgent.indexOf(browsers[i]) != -1) 
      browser = browsers[i]; 
    } 
    var head = document.getElementsByTagName("head"); 
    var css = document.createElement("link"); 
    css.setAttribute('href' , './' + browser.toLowerCase() + '.css'); 
    css.setAttribute('rel' , 'stylesheet'); 
    (head[0]).appendChild(css); 



Lösung 3:
Verwendung HTML-Kommentare

<!--[if IE]> 
    <link rel="stylesheet" href="./ie.css"> 
<![ENDIF]--> 
+0

Vielen Dank für Ihre Antwort, aber ich hatte Problem für die vertikale Ausrichtung von Platzhalter, ich denke, Sie haben die obige Antwort für Platzhalter geteilt. – Tushar

+0

@Tushar ja, irgendwie richtig, aber ich habe es nur für jemand anderen Bedürfnisse und für weitere Informationen. – Soosh

0

Sie js dieses Problem zu beheben verwenden waterwark können.

http://jsfiddle.net/maxim75/yJuF3/

prüfen Geige heraus.

<input type="text" id="Text1" /> 
+0

Ich hatte Probleme mit der vertikalen Ausrichtung von Platzhaltern, ich denke, Sie haben die obige Demo für Platzhalter geteilt. – Tushar

+0

Ja, nur das Hinzufügen der Platzhaltereigenschaft in Ihrem Eingabe-Tag garantiert nicht die korrekte Ausrichtung in jedem Browser. So können Sie für Wasserzeichen JS-Lösung gehen, wenn Sie möchten. – Anup

0

Für jedermann zu diesem späten kommt - fand ich eine Lösung, die in Twitter Bootstrap (3.1) sowie ein paar anderen Tests arbeitete ich lief.

einfach auf das Eingangselement hinzufügen:

height: inherit; 
vertical-align: middle; 
1

Ich habe in der Regel eine Höhe und line-height zum input [type = text] und erben diese Eigenschaften :: Platzhalter.

height: inherit; 
line-height: inherit; 
0

Lösung:

Angewandte gleich 36px line-height auf input [type = "text"].

Nebeneffekt:

Vor line-height geben: 36px es funktioniert in alle Browser in Ordnung.Wie ich 36px line-height auf Eingang [type = "text"], ist unter dem, was in Safari passiert:

enter image description here

Zweite Lösung:

Nehmen line-height mit IE-Hack . Das ist wie folgt

input[type="text"] { 
    line-height: 36px\9; // CSS Hack only for IE. 
}