zastępczy wejście line-height problem
Jaki jest problem?
Istnieje pole wprowadzania o wysokości 36 pikseli, jak pokazano na powyższym obrazku. W IE10 symbol zastępczy nie jest środkowo w pionie.
zastępczy wejście line-height problem
Jaki jest problem?
Istnieje pole wprowadzania o wysokości 36 pikseli, jak pokazano na powyższym obrazku. W IE10 symbol zastępczy nie jest środkowo w pionie.
Dla wszystkich wejść tylko dać
line-height:normal;
zajmie normalne line-height i będzie działać poprawnie we wszystkich przeglądarkach.
Zaskakująco działa jak wdzięk –
Dlaczego więc normalność nie jest standardem, wspaniała odpowiedź! Pracował jak urok. –
spróbuje użyć tego:
vertical-align:middle;
Próbowałem tego, jednak nie zadziałało. – Tushar
@downvoters co jest nie tak? –
Rozwiązanie 1:
wejść używanie bez zastępczy:
<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');}">
Rozwiązanie 2:
wykorzystanie ten skrypt, aby dodać oddzielne css dla każdej przeglądarki
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);
Rozwiązanie 3:
użycie html komentuje
<!--[if IE]>
<link rel="stylesheet" href="./ie.css">
<![ENDIF]-->
Można użyć waterwark js, aby rozwiązać ten problem.
http://jsfiddle.net/maxim75/yJuF3/
Wyjazd skrzypce.
<input type="text" id="Text1" />
Wystąpił problem z wyrównaniem pionowym elementu zastępczego, myślę, że udostępniłeś powyższe demo jako obiekt zastępczy. – Tushar
Tak, samo dodanie obiektu zastępczego w tagu wejściowym nie gwarantuje perfekcyjnego wyrównania go w każdej przeglądarce. Możesz więc wybrać rozwiązanie znaku wodnego JS, jeśli chcesz. – Anup
Dla każdego, kto przyjeżdża do tego późno - Znalazłem rozwiązanie, które pracowały w Twitter Bootstrap (3.1), a także kilka innych testów wpadłem.
Wystarczy dodać do elementu wejściowego:
height: inherit;
vertical-align: middle;
zwykle ustawić wysokość i skład wysokość do wejścia [type = tekst] odziedziczyć tych właściwości :: zastępczy.
height: inherit;
line-height: inherit;
Rozwiązanie:
stosowana sama linia 36 px wysokości na wejście [type = "text"].
Efekt uboczny:
Przed podaniem line-height: 36 px to działa dobrze we wszystkich przeglądarce.Jak stosować 36 px line-height do wejścia [type = "text"], poniżej jest to, co wydarzyło się w Safari:
drugie rozwiązanie:
Zastosuj line-height z IE Hack . To jest następujące:
input[type="text"] {
line-height: 36px\9; // CSS Hack only for IE.
}
Czy możesz przesłać css, który dotyczy danych wejściowych? Trudno zobaczyć, co może być przyczyną tego bez kodu. – Advocation
Jeśli używasz linii o wysokości: Spróbuj dodać "vertical-align: middle" do tekstu – RononDex
Nie potrzebujesz 'line-height', udostępnij pełny kod http://jsfiddle.net/VNrsQ/ –