Зачем вообще использовать letter-spacing
? Я не вижу логики этого решения.
Я думаю, что вам, возможно, придется переделать этот код, попробовать что-то вроде этого, он чище и должен работать во всех браузерах, IE8 + просто отлично. Отрегулируйте под свои нужды:
HTML
<form id="sform" action="index.htm">
<input class="sfield" type="text" value="Search..." />
<input class="sbutton" type="button" value="Go" />
</form>
CSS
#sform, .sfield, .sbutton {
border-radius: 100px;
padding: 10px;
}
#sform {
position: relative;
display: inline-block;
background: #999;
border-radius: 100px;
}
.sfield {
border: 1px solid #999;
width: 300px;
}
.sbutton {
position: absolute;
right: 10px;
border: 0;
background: black;
color: white;
}
Объяснение:
Межбуквенный интервал увеличивает или уменьшает расстояние между символами в тексте, и кажется, что вы используете его для добавления отступов.
Затем элемент абсолютной позиции позиционируется относительно первого родительского элемента, который имеет позицию, отличную от статической.
Попробуйте удалить все свои letter-spacing
, и вы увидите, что изменения в макете минимальны.
Посмотрите на мой пример, и по логике вы поймете, почему он работает.
пример:
http://jsfiddle.net/elclanrs/7KGkJ/1/