J'ai le code HTML suivant:
<input type="text" class="form-control" name="watch" value="" placeholder="watch">
<div class="input-group">
<span class="input-group-addon">$</span>
<input type="number" class="form-control" name="price" value="" placeholder="Price (optional)" style="width: 140px;">
</div>
<span class="btn btn-primary" onclick="update($(this));"><span class="glyphicon glyphicon-upload" aria-hidden="true"></span> Update</span>
Cela rend comme ceci:
Comment puis-je obtenir les deux entrées et le bouton sur la même ligne? Je me suis amusé avec le CSS, mais je n'arrive pas à le faire fonctionner. Je pouvais le faire fonctionner avec une table, mais je sais qu'une solution CSS serait "meilleure".
Vous pouvez utiliser des formulaires en ligne, comme dans la documentation Bootstrap, disponibles ici: https://getbootstrap.com/docs/3.4/css/#forms-inline
La classe "formulaire en ligne" est probablement ce que vous recherchez.
Option 1 - Formulaires en ligne:
utilisez la classe .form-inline pour afficher une série de contrôles de formulaire et boutons sur une seule rangée horizontale
mais
vous devrez peut-être régler manuellement la largeur et l'alignement
Option 2 - Utiliser la grille:
pour des mises en forme plus structurées et réactives, vous pouvez utiliser les classes de grille prédéfinies de Bootstrap
Votre code est adapté à l'option 2. Vous pouvez contrôler la largeur des éléments en modifiant col-md- *.
<div class="form-group row">
<div class="col-md-8" >
<input type="text" class="form-control" name="watch" value="" placeholder="watch">
</div>
<div class="col-md-2" >
<div class="input-group">
<span class="input-group-addon">$</span>
<input type="number" class="form-control" name="price" value="" placeholder="Price (optional)" style="width: 140px;">
</div>
</div>
<div class="col-md-2">
<span class="btn btn-primary" onclick="update($(this));"><span class="glyphicon glyphicon-upload" aria-hidden="true"></span> Update</span>
</div>
</div>
Et voici à quoi ça ressemble Afficher les éléments inline dans le formulaire en utilisant la grille
Utilisez une disposition de grille avec une taille de téléphone xs
pour forcer la grille à réagir, la grille étant divisée en 12 cellules, il vous faudra 3 x 4.
<div class="row">
<div class="col-xs-4">
</div>
<div class="col-xs-4">
</div>
<div class="col-xs-4">
</div>
</div>
Vous pourriez aussi en avoir un plus gros que les autres:
<div class="row">
<div class="col-xs-7">
</div>
<div class="col-xs-3">
</div>
<div class="col-xs-2">
</div>
</div>
Tant qu'ils totalisent 12.
Dans Bootstrap 4, vous utilisez plusieurs
<div class="col"></div>