css: problème avec la largeur et le rembourrage de l'entrée dans IE

Je vais avoir un problème avec les largeurs sur l'entrée[texte] champs dans IE, toutes les versions.

J'ai un div avec un explicitement définir la largeur de 250px.
Dans cette div, j'ai un champ de saisie de texte avec une largeur de 100%. Cette entrée a également un interne gauche-padding de 10px.

Dans IE, il rend une largeur de 100% + 10px. Je ne peux pas trouver une technique pour contraindre la largeur du conteneur.

Ce problème est apparue initialement dans tous les navigateurs, mais il a été très facile à fixer dans FF, Safari et Chrome en ajoutant max-width:100%. IE6/7 ne prennent pas en charge ce, alors que IE8 ne mais aussi, elle ajoute encore le rembourrage sur la largeur.

Je comprends que IE modèle de boîte comprend des frontières et de la marge dans ses calculs de largeur, donc avec cette donnée, comme l'a compris je ne peut toujours pas trouver un moyen de contourner cela.

Je suis aussi en train d'essayer de trouver une meilleure solution que de simplement la définition de mon entrée largeurs de 240px avec le rembourrage, parce qu'il y a différentes entrées dans ce formulaire qui est des contenants varient en taille et je voudrais trouver une solution universelle.

Voici un code:

<div class="places_edit_left">
    <h4>PHONE <strong>(NOT USER EDITABLE)</strong></h4>
    <input type="text" value="" name="phoneNumber"/>

    <h4>ADDRESS<strong>(NOT USER EDITABLE)</strong></h4>
    <input type="text" value="" name="address"/>
</div>

CSS

.places_edit_left{ width:250px; }
.places_edit_left input{ width:100%; max-width:100%; padding-left:10px;}

OriginalL'auteur | 2009-07-23