J'essaye de créer des boutons centrés dans Bootstrap 4 pour un projet. Je suis un débutant dans le codage et jusqu'à présent, j'ai atteint cet objectif et je veux qu'ils s'empilent lorsqu'ils sont affichés sur une tablette et des appareils mobiles. À l'heure actuelle, ils se superposent sur les appareils mobiles et les tablettes.
Toute aide que vous pourriez fournir serait grandement appréciée. :)
Mon code:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <div class="container-fluid py-2"> <div class="row text-center"> <div class="col-10 offset-1"> <button class="btn btn-primary mr-2 select-all">Select All Items</button> <button class="btn btn-primary mr-2 unselect-all">Unselect All Items</button> <button class="btn btn-primary mr-2" id="latencybutton">New Items</button> <button class="btn btn-primary mr-2 clear-all">Clear All</button> <button class="btn btn-primary mr-2 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Remove Items</button> <div class="dropdown-menu" aria-labelledby="dropdownMenu2"> <button class="dropdown-item select-1" type="button">Items 1</button> <button class="dropdown-item select-2" type="button">Items 2</button> <button class="dropdown-item select-3" type="button">Items 3</button> <button class="dropdown-item select-4" type="button">Items 4</button> </div> </div> </div> </div>
3 Réponses :
Essayez peut-être quelque chose comme la coque de menu mobile ... Je veux dire ... ce sera une sorte de duplication d'éléments html mais vous pourriez essayer ceci. Créez le bouton déroulant et mettez à l'intérieur les boutons que vous avez déjà et définissez la résolution du bureau comme affichage: aucun; Les boutons que vous venez de définir dans la requête multimédia mobile comme affichage: aucun;
Le résultat devrait être que sur la largeur du bureau de la page, vous devriez avoir des boutons normaux placés séparément, et sur mobile, vous devriez voir un bouton déroulant avec vos boutons à l'intérieur.
La grille Bootstrap 4 peut vous aider à y parvenir. Vous trouverez ci-dessous une version mise à jour de votre extrait de code qui crée des boutons réactifs, qui apparaissent horizontalement sur les grands écrans et verticalement sur les écrans de petite et moyenne taille.
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <div class="container-fluid py-2"> <div class="row"> <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 mb-1"><button class="btn btn-primary mr-2 select-all">Select All Items</button></div> <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 mb-1"><button class="btn btn-primary mr-2 unselect-all">Unselect All Items</button></div> <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 mb-1"><button class="btn btn-primary mr-2" id="latencybutton">New Items</button></div> <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 mb-1"><button class="btn btn-primary mr-2 clear-all">Clear All</button></div> <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 mb-1"><button class="btn btn-primary mr-2 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Remove Items</button> <div class="dropdown-menu" aria-labelledby="dropdownMenu2"> <button class="dropdown-item select-1" type="button">Items 1</button> <button class="dropdown-item select-2" type="button">Items 2</button> <button class="dropdown-item select-3" type="button">Items 3</button> <button class="dropdown-item select-4" type="button">Items 4</button> </div> </div> </div> </div>
Enveloppez tous vos boutons dans un ... en remplaçant Voir ça marche: L'extrait applique la variation verticale a> du La vérification est effectuée sur les événements id
unique de votre choix. Ensuite, utilisez cet extrait de code: <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<div class="container-fluid py-2">
<div class="row text-center">
<div class="col-10 offset-1">
<div id="myGroup" role="group">
<button class="btn btn-primary mr-2 select-all">Select All Items</button>
<button class="btn btn-primary mr-2 unselect-all">Unselect All Items</button>
<button class="btn btn-primary mr-2" id="latencybutton">New Items</button>
<button class="btn btn-primary mr-2 clear-all">Clear All</button>
<button class="btn btn-primary mr-2 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Remove Items</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item select-1" type="button">Items 1</button>
<button class="dropdown-item select-2" type="button">Items 2</button>
<button class="dropdown-item select-3" type="button">Items 3</button>
<button class="dropdown-item select-4" type="button">Items 4</button>
</div>
</div>
</div>
</div>
#myGroup
par votre identifiant unique et 720
par la largeur souhaitée, selon Bootstrap's Système de grille points d'arrêt de réactivité . $(window).on('load resize', function(){
$('#myGroup').toggleClass('btn-group-vertical', $(window).width() < 720)
})
$(window).on('load resize', function(){
$('#myGroup').toggleClass('btn-group-vertical', $(window).width() < 720)
})
.btn-group
de Bootstrap ( .btn-group-vertical
) au wrapper selon que la largeur de la fenêtre est inférieure à la largeur spécifiée.
load
et resize
de la fenêtre. Si vous souhaitez l'utiliser dans de nombreux endroits, vous voudrez peut-être limiter son exécution, car l'événement resize
peut se déclencher de très nombreuses fois par seconde.
Ce n'est pas un problème si vous ne l'utilisez qu'une seule fois, en particulier parce que la condition vérifiée et la manipulation DOM sont assez légères.