Je veux vertical-align texte dans la boîte de sélection
Je veux aligner verticalement le texte dans la boîte de sélection. J'ai essayé d'utiliser
select{
verticle-align:middle;
}
toutefois, il ne fonctionne pas dans tous les navigateurs. Chrome semble être d'aligner le texte dans la zone de sélection pour le centre en tant que par défaut. FF aligne vers le haut et IE aligne vers le bas. Est-il un moyen pour y parvenir? Je suis en utilisant GWT Select widget dans UIBinder.
C'est actuellement ce que j'ai:
select{
height: 28px !important;
border: 1px solid #ABADB3;
margin: 0;
padding: 0;
vertical-align: middle;
}
Merci!
- est
font-size:22px;
une option? - J'ai déjà une taille de police définie à 14px. Je ne pense pas que ce sera un travail long de navigateurs...
- Votre premier exemple montre "verticle-align" plutôt que de "vertical-align" - ces sortes de fautes de frappe va certainement vous causer des problèmes.
- Encore un problème en 2016!
Vous devez vous connecter pour publier un commentaire.
Votre meilleure option sera probablement pour ajuster le haut de rembourrage & comparer tous les navigateurs. Il n'est pas parfait, mais je pense qu'il est aussi proche que vous pouvez obtenir.
La quantité de remplissage, vous aurez besoin dépendra de la taille de la police.
Astuce: Si votre police est définie dans
px
, de padding danspx
ainsi. Si votre police est définie dansem
, définir le rembourrage enem
trop.MODIFIER
Ce sont les options je pense que vous avez, depuis vertical-align n'est pas consistante à travers les navigateurs.
A. Retirez l'attribut hauteur et laisser le navigateur de la gérer. Généralement cela fonctionne le mieux pour moi.
B. Ajouter des haut-rembourrage de pousser vers le bas le texte. (Poussé vers le bas de la flèche dans certains navigateurs)
C. Vous pouvez agrandir la police d'essayer et de faire correspondre la sélectionner hauteur d'un peu plus agréable.
Je suis tombé sur cet ensemble de propriétés css qui semblent alignez verticalement le texte dans la taille de sélectionner des éléments dans Firefox:
Si quelque chose, cependant, il pousse le texte vers le bas encore plus loin dans IE8. Si j'ai mis la box-sizing propriété border-box, elle au moins ne fait pas de IE8 pire (et FF s'applique toujours à l'-moz-box-sizing de la propriété). Il serait agréable de trouver une solution pour IE, mais je ne retiens pas mon souffle.
Edit: Nix cette. Il ne fonctionne pas après le test. Pour toute personne intéressée, cependant, le problème semble provenir de styles intégrés dans FF formulaires.fichier css affectant d'entrée et de sélectionner des éléments. La propriété en question est line-height:normal !important. Il ne peut pas être remplacée. Je l'ai essayé. J'ai découvert que si je supprime la propriété intégrée dans Firebug, je reçois un élément select raisonnablement à la verticale centrée sur le texte.
Ma solution est d'ajouter un padding-top pour sélectionner ciblées pour firefox n'aime que ce
J'ai rencontré ce problème exactement. Mon sélectionnez options ont été centrés verticalement dans webkit, mais ff par défaut vers le haut. Après avoir regardé autour de moi, je n'ai pas vraiment envie de créer un travail autour de qui était en désordre et en fin de compte n'a pas résolu mon problème.
Solution: Javascript.
Cela résout votre problème de manière très précise. Le seul inconvénient est que je suis à l'aide de jQuery, et si vous n'êtes pas à l'aide de jQuery sur votre projet, vous ne pouvez pas à inclure une bibliothèque js pour faire un seul.
Note: je ne recommande pas de style de n'importe quoi avec js, sauf si absolument nécessaire. CSS devrait toujours être la principale solution pour le style de jQuery (dans cet exemple) que l'axe intitulée "Briser en cas d'Urgence".
*Mise à JOUR* C'est un vieux post et comme il semble, les gens sont toujours référencement de cette solution que je devrais état (comme mentionné dans les commentaires) que, depuis de 1,9 cette fonction a été supprimée à partir de jQuery. Veuillez voir le Modernizr projet pour effectuer fonction de détection de en lieu et place de browser sniffing.
$.browser
est obsolète depuis jQuery 1.3 et supprimée depuis la 1.9.juste eu ce problème, mais pour les appareils mobiles, principalement mobile firefox. Le truc pour moi c'était de définir un hauteur, rembourrage, hauteur de la ligne, et enfin boîte de dimensionnement, le tout sur l'élément select. Ne pas utiliser vos numéros par exemple ici, mais pour le bien d'un exemple:
Jusqu'à présent cela fonctionne bien pour moi:
J'ai essayé comme suit et il a travaillé pour moi:
J'ai trouvé que le simple réglage de la hauteur de la ligne et de la hauteur à la même quantité de pixels produit le meilleur résultat cohérent. Par "plus cohérente", je veux dire de façon optimale cohérente, mais bien sûr, il n'est pas à 100% "pixel-perfect" dans les navigateurs. En outre, je trouve que Firefox (v. 17.x) tend vers la foule l'option de texte à la droite à l'encontre de la flèche de la liste déroulante; j'ai atténué ce avec une petite quantité de rembourrage-droit sur l'élément OPTION seulement. Ce paramètre n'affecte pas l'apparence dans IE 7-9.
Mon résultat:
NOTE -- mon SÉLECTIONNER l'élément utilise une police plus petite, 10px. Évidemment, vous aurez besoin d'ajuster les proportions en conséquence pour votre INTERFACE spécifique à chaque contexte.
Essayer de définir le "line-height" attribut
Comme ceci:
Voici un peu de documentation sur cet attribut:
http://www.w3.org/wiki/CSS/Properties/line-height
http://www.w3schools.com/cssref/pr_dim_line-height.asp
J'ai l'habitude d'utiliser
height
etline-height
avec les mêmes valeurs, mais s'est avéré être inégal entre les interwebs. Ma démarche actuelle est de le mélanger avec rembourrage comme si.Vous pouvez également utiliser
padding
pour la valeur horizontale au lieu de lawidth
+text-align
J'ai eu le même problème et travaillé là-dessus pendant des heures. J'ai enfin quelque chose qui fonctionne.
Rien sur le fond, j'ai essayé travaillé dans chaque situation, jusqu'à ce que j'ai positionné un div à reproduire le texte de la première option de la boîte de sélection de gauche et de la réelle première option vide. J'ai utilisé {pointeur-events:none;} pour permettre aux utilisateurs de cliquer sur les div.
HTML
CSS
J'ai trouvé que seul l'ajout de
padding-top
poussé le gris de la flèche de menu déroulant de la boîte sur la droite, ce qui n'était pas souhaitable.La méthode qui a fonctionné pour moi était d'aller dans l'inspecteur et ajoutez progressivement
padding
jusqu'à ce que le texte est centré. Cela permettra également de réduire la taille de la liste déroulante de l'icône, mais il sera centré ainsi donc il n'est pas dérangeant.Cela a été corrigé dans Firefox Nightly et sera dans le prochain firefox construire.
Veuillez voir ce bug pour plus d'informations https://bugzilla.mozilla.org/show_bug.cgi?id=610733
vous pouvez donner :
et de parent, vous devez donner le position:relative.
il va travailler.
Le plus proche de la solution générale que je connais utilise la boîte de propriété aligner, comme décrit ici.
Exemple de travail est ici (je peux le tester que sur Chrome, de croire qu'a l'équivalent pour les autres navigateurs aussi).
CSS: