Je crois déjà avoir eu ce pb mais je ne me souviens pas de solution adéquate. J'ai un simple champs <input class="marge" type"text" name="jour" value="" size="2" maxlength="2">
J'essaye donc de n'avoir que deux chiffres qui s'affichent dans le champs mais j'en ai 4 sans style et si je mets le style ca va jusqu'à 6. Je limite bien le nombre de caractères avec le maxlength mais le size lui offre encore de l'espace que je ne veux pas voir.
Pour ton problème, c'est la largeur width:x; qui offre de l'espace supplémentaire à l'input. retire le width de la classe marge et tu n'auras plus ce souci