Twitter Bootstrap 4
Dans Twitter Bootstrap 4, les entrées et les boutons peuvent être alignés à l'aide des classes input-group-prepend
et input-group-append
(voir https://getbootstrap.com/docs/4.0/components/input-group/#button-addons )
Bouton de groupe sur le côté gauche (préfixe)
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
Bouton de groupe sur le côté droit (ajouter)
<div class="input-group mb-3">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
Twitter Bootstrap 3
Comme indiqué dans la réponse de @abimelex, les entrées et les boutons peuvent être alignés en utilisant les .input-group
classes (voir http://getbootstrap.com/components/#input-groups-buttons )
Bouton de groupe sur le côté gauche
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
<input type="text" class="form-control">
</div>
Bouton de groupe sur le côté droit
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
Cette solution a été ajoutée pour garder ma réponse à jour, mais veuillez coller votre vote positif sur la réponse fournie par @abimelex .
Twitter Bootstrap 2
Bootstrap propose une .input-append
classe, qui fonctionne comme un élément wrapper et corrige cela pour vous:
<div class="input-append">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
Comme l'a souligné @OleksiyKhilkevich dans sa réponse, il existe une deuxième façon d'aligner input
et button
d'utiliser la .form-horizontal
classe:
<div class="form-horizontal">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
Les différences
La différence entre ces deux classes est qu'elles .input-append
placeront le button
haut contre l' input
élément (de sorte qu'elles semblent attachées), où .form-horizontal
placera un espace entre elles.
-- Remarque --
Pour permettre aux éléments input
et button
d'être côte à côte sans espacement, le font-size
a été défini sur 0
dans la .input-append
classe (cela supprime l'espacement blanc entre les inline-block
éléments). Cela peut avoir un effet négatif sur la taille des polices dans l' input
élément si vous souhaitez remplacer les valeurs par défaut à l'aide de em
ou de %
mesures.
.input-append
cours.margin-bottom: 9px
mais les boutons ne le font pas, ils ne prennent donc pas le même espace vertical. Étant donné que les deux éléments ont unmiddle
alignement vertical, le bouton est décalé en raison de la différence. L'utilisation de l'.input-append
encapsuleur supprime cette valeur de marge inférieure.vous pouvez utiliser la propriété de bouton de groupe d'entrée pour appliquer le bouton directement au champ de saisie.
Bootstrap 3 & 4
Jetez un œil à la doc BS4 Input-Group pour de nombreux autres exemples.
la source
<div class="form-group input-group-btn">
Juste la tête en haut, il semble y avoir une classe CSS spéciale pour cela appelé
form-horizontal
input-append a un autre effet secondaire, il réduit la taille de la police à zéro
la source
font-size: 0
et appris quelque chose de nouveau :) Merci!Utilisez .form-inline = Cela alignera les étiquettes à gauche et les contrôles de bloc en ligne pour une mise en page compacte
Exemple: http://jsfiddle.net/hSuy4/292/
.form-horizontal = Alignez les étiquettes à droite et faites-les flotter vers la gauche pour les faire apparaître sur la même ligne que les contrôles, ce qui est préférable pour la présentation de formulaire à 2 colonnes.
Exemples: http://twitter.github.io/bootstrap/base-css.html#forms
la source
form-inline
fonctionne pour Bootstrap 3. Merci.J'ai surtout essayé et me retrouve avec peu de changements que j'aimerais partager. Voici le code qui fonctionne pour moi (trouvez la capture d'écran ci-jointe):
Si vous voulez le voir fonctionner, utilisez simplement le code ci-dessous dans votre éditeur:
J'espère que cela t'aides.
la source
style="width:0;"
?<div class="col-md-4">
Pas besoin dewidth: 0
Je me débattais également avec le même problème. Les classes de bootstrap que j'utilise ne fonctionnent pas pour moi. J'ai trouvé une solution de contournement, comme ci-dessous:
Fondamentalement, j'ai outrepassé la propriété d'affichage de la classe "form-control" et utilisé d'autres propriétés de style pour corriger la taille et la position.
Voici le résultat:
la source
Bootstrap 4:
https://getbootstrap.com/docs/4.0/components/input-group/
la source
la source
J'ai essayé tous les codes ci-dessus et aucun d'eux n'a résolu mes problèmes. Voici ce qui a fonctionné pour moi. J'ai utilisé l'addon de groupe d'entrée.
la source
Pas directement lié, sauf si vous avez un code similaire, mais je viens de remarquer un comportement étrange pour form-inline, bootstrap 3.3.7
Je n'ai pas utilisé de ligne et de cellule pour cela car c'est un projet de bureau, si la balise d'ouverture était en dessous du tableau (dans ce cas):
Les éléments du formulaire s'empileraient.
Switch et il est correctement aligné.
Safari 10.0.2 et le dernier Chrome n'ont fait aucune différence. Peut-être que ma disposition était fausse, mais elle n'est pas très indulgente.
la source
Prenez un flotteur d'entrée comme à gauche. Prenez ensuite le bouton et faites-le flotter à droite. Vous pouvez effacer la classe lorsque vous en prenez plusieurs à distance.
la source
Utilisez-le pour déplacer votre div vers le haut ou vers le bas dans votre rangée. Fonctionne des merveilles pour moi.
la source