Dans le code ci-dessus, j'essaie de centrer l'élément h1
sur l'image à la fois verticalement et horizontalement en utilisant simplement bootstrap 4
sans aucun style css. comment faire cela?
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/> <div id="navbar" class="p-2"> <nav class="navbar navbar-expand-lg navbar-light"> <a class="navbar-brand" href="BR Architects"><span id="BR">BR</span> Architects</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav ml-auto"> <li class="nav-item"> <a class="nav-link" href="#">Projects</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div> </nav> </div> <div id="header-img"> <div class="card text-center"> <img class="card-img" src="https://www.w3schools.com/w3images/architect.jpg" alt="Card image"> <div class="card-img-overlay"> <h1 class="card-title"><span class="text-white">BR</span> Architects</h1> </div> </div> </div>
Merci !
3 Réponses :
<div id="header-img"> <div class="row justify-content-center align-self-center"> <img class="card-img" src="https://www.w3schools.com/w3images/architect.jpg" alt="Card image"> <div class="card-img-overlay"> <h1 class="card-title"><span class="text-white">BR</span> Architects</h1> </div> </div> </div>
La ligne
ne doit être utilisée que pour contenir des colonnes. pour flexbox, utilisez simplement d-flex
La solution la plus simple à laquelle je pourrais penser pour le moment
Ajoutez cette ligne dans votre card-img-overlay
" d-flex justify-content-center align-items-center
"
Exemple:
<div class="card-img-overlay d-flex justify-content-center align-items-center"> <h1 class="card-title "><span class="text-white">BR</span> Architects</h1> </div>
J'espère que cela vous aidera.
Une solution consiste à ajouter la classe d-flex
à card-img-overlay
, puis à appliquer les classes justify-content-center pour l'alignement horizontal et align-items-center pour l'alignement vertical.
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> <div id="header-img"> <div class="card"> <img class="card-img" src="https://www.w3schools.com/w3images/architect.jpg" alt="Card image"> <div class="card-img-overlay d-flex align-items-center justify-content-center"> <h1 class="card-title"> <span class="text-white">BR</span> Architects </h1> </div> </div> </div>
les méthodes expliquées dans ce lien ne fonctionnent pas pour moi, voir le code modifié ci-dessus
dans le css, j'ai mis le html et la hauteur du corps à 100% et j'essaie de nombreuses méthodes et tout ne fonctionne pas
Les autres questions expliquent toutes deux que le contenu de l'élément parent,
card-img-overlay
peut être centré avec flexbox codeply.com/go/QqSKdFp36M