Это правильное поведение IE и FF?
В стандарте на самом деле не указано, каким образом CSS контролирует оформление полей формы. Первоначально они были реализованы как виджеты ОС, и в этом случае имел бы смысл изменение размера рамки. Более поздние браузеры перешли на рендеринг самих виджетов, используя CSS border / padding / и т. Д., И в этом случае имеет смысл изменить размер поля содержимого. Некоторые браузеры (IE) отображают поля формы как комбинацию обоих, что означает, что вы можете получить поля выбора, не совпадающие с текстовыми полями.
И есть ли кросс-браузерный способ решения этой проблемы?
Самое лучшее, что вы можете сделать, это сообщить браузеру, какой размер вы хотите выбрать вручную, используя CSS3:
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
(Не работает на IE6 / 7 или IE8 в режиме совместимости или в режиме совместимости.)