Sur le formulaire, j'ai un champ de sélection et deux champs de saisie. Ces éléments sont alignés verticalement. Malheureusement, je ne peux pas obtenir la même largeur de ces éléments.
Voici mon code:
<select name="name1" style="width:198px">
<option>value1</option>
<option>value2</option>
</select><br/>
<input type="text" name="id1" style="width:193px"><br/>
<input type="text" name="id2" style="width:193px">
Pour l'exemple ci-dessus, la meilleure largeur pour l'élément sélectionné est de 198 ou 199 px (bien sûr, j'ai essayé 193px, mais la différence est majeure). Je pense que cela dépend de la résolution, sur divers ordinateurs et navigateurs, car ces éléments n'ont pas la même largeur (parfois je pense que la différence est d'environ 1 ou 2 px). J'ai essayé de définir ces éléments dans des lignes div ou table, mais cela n'aide pas.
Q: Comment pourrais-je obtenir une largeur exactement égale de ces éléments?
html
css
html-select
border-box
luk4443
la source
la source
Réponses:
Réponse mise à jour
Voici comment changer le modèle de boîte utilisé par les éléments input / textarea / select afin qu'ils se comportent tous de la même manière. Vous devez utiliser la
box-sizing
propriété qui est implémentée avec un préfixe pour chaque navigateurCela signifie que la différence de 2 pixels que nous avons mentionnée précédemment n'existe pas.
exemple sur http://www.jsfiddle.net/gaby/WaxTS/5/
Remarque: sur IE, cela fonctionne à partir de la version 8 et plus.
Original
si vous réinitialisez leurs bordures, l'
select
élément sera toujours inférieur de 2 pixels auxinput
éléments.exemple: http://www.jsfiddle.net/gaby/WaxTS/2/
la source
J'ai essayé la réponse de Gaby (+1) ci-dessus mais cela n'a résolu que partiellement mon problème. Au lieu de cela, j'ai utilisé le CSS suivant, où content-box a été changé en border-box:
la source
box-sizing: border-box
. Pour une bonne implémentation universelle, envisagez de définir l'élément html de niveau supérieur, puis d'hériter vers le bas afin qu'il puisse être facilement remplacé.Ajoutez ce code en css:
la source
créer une autre classe et augmenter la taille avec l'exemple de 2px
la source