Элементы формы традиционно имеют width
/ height
, который включает их отступы / границы, потому что они изначально были реализованы браузерами как родные для ОС виджеты пользовательского интерфейса, где CSS не влиял на декорации.
Чтобы воспроизвести это поведение, Firefox и другие отображают некоторые поля формы (select, button / input-type-button) с стилем CSS3 box-sizing , установленным в border-box
, так что width
свойство отражает всю ширину отображаемой области, включая границы и отступы.
Вы можете отключить это поведение с помощью:
select, button {
box-sizing: content-box;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
}
(или, что более распространено для макетов в жидкой форме, где вы хотите использовать ширину «100%», вы можете установить для других значение border-box
.)
Должны присутствовать версии с префиксом -browser, чтобы перехватывать браузеры, которые реализовали это до того, как процесс стандартизации дошел до этого уровня. Это будет неэффективно в IE6-7, однако.