2013-05-25 10 views

Odpowiedz

14

musisz pogodzić padding i line-height. Z numerem box-sizing: border-box zasadniczo walczą o tę samą nieruchomość.

Innymi słowy, mówisz "Dopasuj 50 pikseli wysokości linii do 50 pikseli całkowitej pionowej przestrzeni, ale także doprowadź ją do rozmiaru 20 pikseli".

Prostym rozwiązaniem jest zmniejszenie wartości line-height, aby padding * 2 + line-height = 50px. Lub, jeśli chcesz więcej line-height, zmniejsz dopełnienie. Jeśli chcesz zachować takie same wypełnienie, zwiększ wysokość do 70 pikseli.

Przykład: http://jsfiddle.net/D7v2Y/11/

input { 
    display: block; 
    box-sizing: border-box; 
    line-height: 30px; 
    height: 50px; 
    padding: 10px; 
} 
+1

wysłałeś dokładnie ten sam kod co OP. Czy nie powinno to być "wysokość linii: 30 pikseli" według twoich uwag? – ProblemsOfSumit

+1

Sumit, dobry połów, dzięki. –

+1

Ta odpowiedź była bardzo, bardzo pomocna. Zrozumienie zależności między wysokością linii a dopełnieniem + marginesem pozwoliło mi naprawić w ciągu 2 minut to, czego nie mogłem rozwiązać w ciągu 2 godzin. – user1205577

-2

wyściółka łamie go w IE8, bóg tylko wie dlaczego ....

prostu usunąć wyściółka

2

dodałem rozmiar czcionki i które wydają się rade:

input { 
    display: block; 
    box-sizing: border-box; 
    line-height: 1.0; 
    font-size: 20px; 
    height: 50px; 
    padding: 10px; 
} 

nieco dziwne ... ale wydaje się być jednym ze sposobów to.

Fiddle: http://jsfiddle.net/audetwebdesign/Y2rd4/

Box Dobór

Zauważyłem, że właściwość box-wymiarowania oblicza inną wysokość w IE10/9 w porównaniu do Firefoksa. Jeśli pominiesz tę właściwość, pole wejściowe będzie renderować bardziej podobnie.

Powiązane problemy