IE semble ignorer la hauteur définie dans CSS lors du rendu d'un SELECT HTML. Y a-t-il un moyen de contourner ce problème ou devons-nous simplement accepter IE ne sera pas aussi beau que les autres navigateurs?
Il n'y a pas de solution de rechange à cela, si ce n'est de supprimer l'élément select
.
Il est vrai qu'il n'y a pas de solution de rechange à cela, mis à part l'amerrissage de l'élément select, mais si vous ne devez afficher que plus d'éléments dans votre liste de sélection, vous pouvez simplement utiliser l'attribut size:
<select multiple="multiple" size="15">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
Ce faisant, vous aurez des lignes vides supplémentaires si la longueur de votre collection d'éléments est inférieure à la valeur de la taille.
vous pouvez utiliser une combinaison de taille de police et de hauteur de trait pour le forcer à augmenter, mais uniquement dans les cas où vous avez également besoin de la police
modifier:
Exemple -> http://www.bse.co.nz EDIT: (ce lien n'est plus pertinent)
la sélection à côté du grand champ de recherche a les règles CSS suivantes:
#navigation #search .locationDrop {
font-size:2em;
line-height:27px;
display:block;
float:left;
height:27px;
width:200px;
}
Oui, vous pouvez.
J'ai été en mesure de définir la hauteur de ma SELECT
sur exactement ce que je voulais dans IE8 et 9. L'astuce consiste à définir la propriété box-sizing
sur content-box
. Cela fixera la zone de contenu de SELECT
à la hauteur, mais gardez à l'esprit que les valeurs margin
, border
et padding
ne seront pas calculées dans la largeur/hauteur de la SELECT
, ajustez donc ces valeurs en conséquence.
select {
display: block;
padding: 6px 4px;
-moz-box-sizing: content-box;
-webkit-box-sizing:content-box;
box-sizing:content-box;
height: 15px;
}
Voici un travail jsFiddle . Souhaitez-vous confirmer et marquer la réponse appropriée?
Il existe un moyen de contourner ce problème (au moins pour la sélection multiple):
Même si définir une valeur CSS height sur l'élément select ne fonctionne pas, l'attribut padding fonctionne correctement . Définir un remplissage supérieur et inférieur donnera à votre élément select une apparence plus grande.
Enfin trouvé dans http://viralpatel.net/blogs/2009/09/setting-height-selectbox-combobox-ie.html Une solution simple (au moins pour IE8):
font-size: 1.0em;
BTW, pour Google Chrome, a trouvé cette solution de contournement à Comment standardiser la hauteur d’une zone de sélection entre Chrome et Firefox? * /
-webkit-appearance: menulist-button;
Vous pouvez utiliser un remplacement: jQuery Chosen . Ça a l'air génial.
select{
*zoom: 1.6;
*font-size: 9px;
}
Si vous modifiez les propriétés, la taille de select
sera également modifiée dans IE7.
Voir aussi Modèle de boîte incohérente entre les entrées, sélectionnez, ...
vous pouvez faire comme ce que fait Facebook, ajoutez simplement un rembourrage. Ce n'est pas aussi bon qu'on pourrait le souhaiter, mais ça a l'air assez bien.
je voulais que la hauteur de la zone de sélection soit plus petite que celle par défaut. j'ai utilisé
select {
position: relative;
height: 10px !important;
display: inline-block;
}
cela fonctionne sur ie7 et ie8. vous n’auriez peut-être besoin que de la propriété height
, je viens d’ajouter les position
et display
pour remplacer les propriétés héritées du haut du dom.
Pas sûr, mais je pense que c'était une question non pas de la hauteur d'un élément de sélection 'multiple' mais d'un type d'élément de liste déroulante. J'ai rencontré des moments où la liste déroulante semble réduite et ne montre pas clairement la valeur sélectionnée. Il ne fait aucun doute que cela concerne les informations de style CSS utilisées sur la page. La seule façon de l'arrêter est soit de changer le CSS (ce qui affecterait probablement la page entière ou des parties de celle-ci d'une manière que vous ne souhaitez pas affecter) ou d'utiliser les informations de style dans l'élément select lui-même pour remplacer le CSS qui le recouvre. Exemple:
<select name="myselect" id="myselect" style="font-size:15px; height:30px">
<option value="someval">somedescr</option>
...
</select>
J'espère que cela t'aides.