次の簡単な例を試してください。
<html>
<head>
<style>
div,
input {
border: 1px solid #000;
margin: 2px;
padding: 3px;
width: 100px;
}
</style>
</head>
<body>
<div>div</div>
<input value="input" />
</body>
</html>
div と入力の幅が異なることに注意してください。実際、入力の幅は 92px です。入力について、Firefox は、IE がすべてに対して行うのと同じ方法で、ボーダーとパディングの外側の幅を計算します。入力要素を他のすべてと同じように扱い、幅にパディングとボーダーを追加するべきではありませんか?