Comme indiqué dans l'autre réponse, largeur: automatique ne fonctionne pas en raison de la largeur étant généré par l'entrée de l'attribut de taille, qui ne peut pas être réglé sur "auto" ou quelque chose de semblable.
Il ya quelques solutions de contournement que vous pouvez utiliser pour l'obliger à jouer gentiment avec le modèle de boîte, mais rien de fantastique autant que je sache.
D'abord, vous pouvez définir le rembourrage dans le domaine à l'aide de pourcentages, faire en sorte que la largeur ajoute jusqu'à 100%, par exemple:
input {
width: 98%;
padding: 1%;
}
Une autre chose que vous pourriez faire est d'essayer en utilisant le positionnement absolu, à gauche et à droite à 0. En utilisant cette syntaxe:
<fieldset>
<input type="text" />
</fieldset>
Et ce CSS:
fieldset {
position: relative;
}
input {
position: absolute;
left: 0;
right: 0;
}
Ce positionnement absolu sera la cause de l'entrée de remplir le parent fieldset à l'horizontale, quelle que soit l'entrée de rembourrage ou de marge. Cependant un énorme inconvénient de cette est que vous avez à traiter avec la hauteur de la fieldset, qui sera de 0, à moins que vous la définissez. Si vos contributions sont toutes de la même hauteur que cela fonctionnera pour vous, il suffit de définir le fieldset la hauteur de ce que l'entrée de hauteur doit être.
Autre que cela, il ya quelques JS solutions, mais je n'aime pas l'application de base de style avec JS.