J'utilise la classe btn-mini
de Bootstrap pour les "mini" boutons et je cherche quelque chose d'analogue pour créer un "mini" élément de sélection, où le bouton de sélection (c'est-à-dire la partie sur laquelle vous cliquez pour afficher la liste des options, pas la liste des options proprement dites ) a la même taille et le même style qu’un mini-bouton.
Lorsque j'applique la classe btn-mini
à un élément de sélection, le style de police du bouton de sélection a la même taille qu'un mini-bouton, mais la taille du bouton de sélection lui-même reste inchangée par rapport à la taille par défaut.
Existe-t-il une autre classe Bootstrap que je devrais utiliser? Ou une autre façon de le faire?
P.S. Je travaille sur OS X Chrome, mais j'espère naturellement qu'il existe une solution compatible avec plusieurs navigateurs.
<select class="btn btn-mini">
<!-- options -->
</select>
<span class="caret"></span>
select.btn-mini {
height: auto;
line-height: 14px;
}
/* this is optional (see below) */
select.btn {
-webkit-appearance: button;
-moz-appearance: button;
appearance: button;
padding-right: 16px;
}
select.btn-mini + .caret {
margin-left: -20px;
margin-top: 9px;
}
Les 2 dernières règles sont optionnelles, cela va donner à <select>
l'apparence de <button>
, j'ai aussi ajouté un signe d'insertion. Voir ce violon .
Juste au cas où des utilisateurs de Bootstrap 3 rencontreraient cette vieille question, voici la méthode BS3:
<select class="form-control input-lg"></select>
<select class="form-control"></select>
<select class="form-control input-sm"></select>
<input class="form-control input-lg">
<input class="form-control">
<input class="form-control input-sm">
Cependant, il n'y a pas d'input-xs, vous devrez donc le faire vous-même si vous voulez plus petit.
.input-xs, select.input-xs {
height: 20px;
line-height: 20px;
}
Pour Bootstrap 4, pour définir height, nous pouvons utiliser la classe form-control-sm
avec form-control
.
<select class="form-control form-control-lg">
<option>Large select</option>
</select>
<select class="form-control">
<option>Default select</option>
</select>
<select class="form-control form-control-sm">
<option>Small select</option>
</select>
Et pour définir width, il faut utiliser des classes de colonnes de grille comme .col-sm-*
, .col-md-*
, .col-lg-*
, etc.
Alors mettez le code de sélection dans:
<div class="row">
<div class="col-md-3">
... select tag code ...
</div>
</div>
et cela ressemblera à ceci:
Vous pouvez appeler le dernier un élément de sélection "mini".
Ce n'est pas une réponse finale, mais je voulais partager ce que j'ai obtenu jusqu'à présent pour quiconque est curieux de le faire.
Comme suggéré par jackwanders, j'ai créé une classe CSS personnalisée:
.select-mini {
font-size: 11px;
height: 20px;
width: 100px;
}
Ces règles font-size
et height
donnent plus ou moins à la zone de sélection la même taille qu’un mini-bouton, mais le texte n’est pas parfaitement aligné de la même manière (il est légèrement décalé). Notez que vous devez utiliser height
et non line-height
pour remplacer une règle height
pour certains éléments que Bootstrap définit ailleurs. (La règle width
consiste simplement à changer le widget et peut être celle que vous souhaitiez.)
Mon CSS-fu n'est pas assez bon pour rendre rapidement la mini-sélection complètement cohérente avec les mini-boutons, et d'après ce que je vois, la sélection se comporte bizarrement quand il s'agit de CSS, mais j'espère que cela sera utile pour en commencer d'autres . En attendant, toujours ouvert pour de meilleures réponses!
Basé sur la classe btn-xs
j'ai préparé ceci:
.input-xs{
height: 20px;
line-height: 1.5;
font-size: 12px;
padding: 1px 5px;
border-radius: 3px;
}
Notez que la largeur n'est pas limitée!
Veuillez vérifier ce violon pour le voir en action.
Pavlo répond, c'est mieux. Mais quand le curseur de la souris est au dessus de la souris, le clic ne fonctionne pas Une seule chose doit être ajoutée dans la classe caret pour résoudre ce problème:
select.btn-mini + .caret {
margin-left: -14px;
margin-top: 19px;
pointer-events: none;
}