J'ai 2 colonnes dans une ligne et une colonne à l'extérieur de la première ligne. rangée col-1 col-2 col-3 Le problème est que le col-3 commence à la fin de col-1, donc en mode bureau, il y a un écart entre col-1 et col-3 et l'écart continue de croître aussi grand que col-2. Comment puis-je faire en sorte que col-3 ne démarre pas après la hauteur de col-2 et par conséquent, il n'y a pas de grand espace entre col-1 et col-3? J'ai essayé de mettre tous les cols à l'intérieur de la ligne et de mettre order-first et order-last
Voici à quoi ça ressemble:
<div class="row"> <div class="col-md-8"> col-1 </div> <div class="col-md-4"> col-2 </div> <div class="col-md-8 pull-left"> col-3 </div> </div>
Voici à quoi ça devrait ressembler: p>
|col-1 ||col-2| | || | ------- | | col-3 | | ---------| |
J'ai essayé de mettre tous les cols à l'intérieur de la ligne et de mettre ordre en premier et ordre en dernier
|col-1 ||col-2| | || | ------- | | | | --------- col-3 ---------
Le résultat attendu devrait être celui il n'y a pas d'espace après col-1 avec col-2. Donc, col-3 ne devrait pas commencer après la hauteur de col-2.
3 Réponses :
Je vous suggère d'utiliser le bootstrap flex css pour y parvenir car c'est beaucoup plus facile. J'ai ajouté un code de test. J'espère que cela aidera votre problème
HTML
.flex-row { display: flex; flex-direction: row; } .flex-column { display: flex; flex-direction: column; } .red { background: red; padding: 10px; } .green { background: green; padding: 10px; }
CSS
<div class="flex-row"> <div class="flex-column"> <div class="col-md-8 red"> Column 1 </div> <div class="col-md-8 red"> Column 2 </div> </div> <div class="col-md-4 green"> Column 3 </div> </div>
Lien JS Fiddle: https://jsfiddle.net/SJ_KIllshot/pqtxL9bs/
Je les ai tous essayés et aucun n'a fonctionné. J'essaie essentiellement de réaliser la mise en page YouTube en regardant une vidéo. Où vous avez col1 le lecteur vidéo, col2 les prochaines vidéos et col3 juste en dessous de col1. Le problème est que col3 démarre après la fin de col3, créant un espace entre col1 et 3 en mode bureau.
EDIT[p>
Voici un exemple de base sur YouTube utilisant flexbox. Vous pouvez nettoyer le CSS.
CodePen
https: //codepen.io/matrixme/pen/wbqvZb
HTML
body { width: 100vw; margin: 0; top: 0; height: auto; background-color: #323232; display: flex; flex-direction: row; justify-content: center; align-content: flex-start; } h2 { width: 100%; text-align: center; font-size: 30px; font-weight: 300; font-family: Arial, sans-serif; } .container { display: flex; flex-direction: row; justify-content: space-between; align-content: flex-start; width: 70%; background-color: #F2F2F2; } .col--one { position: relative; width: 70%; height: 100vh; background-color: #F2F2F2; } .col--two { position: relative; width: 30%; height: auto; background-color: #F2F2F2; border-left: 1px solid #CCCCCC; } .row { position: relative; display: flex; flex-direction: row; justify-content: center; width: 100%; } .video { position: relative; height: 350px; background-color: #EEEEEE; } .forum { flex-wrap: wrap; align-content: flex-start; height: 500px; background-color: #dddddd; position: relative; } ul { position: relative; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; width: 100%; padding: 0; list-style: none; margin: 0; } .thread { position: relative; height: 50px; background-color: #ffffff; width: 90%; } .thumbnail { position: relative; height: 200px; background-color: #ffffff; width: 80%; margin-bottom: 20px; }
CSS
<div class="container"> <div class="col--one"> <div class="row video"> <h2>Video</h2> </div> <div class="row forum"> <h2>Forum</h2> <ul> <li class="thread"></li> <li class="thread"></li> <li class="thread"></li> </ul> </div> </div> <div class="col--two"> <h2>Related</h2> <ul> <li class="thumbnail"> </li> <li class="thumbnail"> </li> <li class="thumbnail"> </li> <li class="thumbnail"> </li> </ul> </div> </div>
Je les ai tous essayés et aucun n'a fonctionné. J'essaie essentiellement de réaliser la mise en page YouTube en regardant une vidéo. Où vous avez col1 le lecteur vidéo, col2 les prochaines vidéos et col3 juste en dessous de col1. Le problème est que col3 démarre après la fin de col3, créant un espace entre col1 et 3 en mode bureau.
@dianesis J'ai créé un CodePen et inclus un exemple
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/> <div class="container"> <div class="row eq-height"> <div class="col-8"> <div class="h-50 content">Atul</div> <div class="h-50 content">Rajput</div> </div> <div class="col-4"> <div class="content h-100">Kumar</div> </div> </div> </div>
.content { background: #999; border: 1px solid red; } .h50 { height: 50%; }
Il n'est pas nécessaire d'écrire autant de CSS pour cela, changez simplement la structure HTML et un peu de CSS vous aidera.
Je les ai tous essayés et aucun n'a fonctionné. J'essaie essentiellement de réaliser la mise en page YouTube en regardant une vidéo. Où vous avez col1 le lecteur vidéo, col2 les prochaines vidéos et col3 juste en dessous de col1. Le problème est que col3 démarre après la fin de col3, créant un espace entre col1 et 3 en mode bureau.