2017-10-20 3 views
-2

Hier ist ein Beispiel dafür, was ich versuche zu tun: https://i.imgur.com/Jhj3Xn2.pngResponsive Gitter mit horizontalen und vertikalen Elementen

Ich bin nicht wirklich sicher, ob dies möglich ist, vermute ich, es kann nicht sein, oder dass eine Javascript-Bibliothek möglicherweise benötigt, um dies zu erreichen.

Was ich versuche zu tun, ist eine reaktionsfähige Galerie aufzubauen, die sowohl vertikale als auch horizontale Elemente hat, die sich gegenseitig tetrisieren. Was ich entdeckt habe, ist, dass Sie zwar die Elemente auf einer bestimmten Bildschirmgröße gut aussehen lassen können, aber sobald Sie die Breite des Darstellungsbereichs ändern, werden im Layout "Löcher" angezeigt.

Kann jemand an eine Möglichkeit denken, den Inhalt so auf einer Seite fließen zu lassen, dass er sowohl reaktionsschnell als auch lückenlos ist? Ich benutze Bootstrap 4 und ich bin glücklich zu verwenden, was JS oder CSS benötigt, um dies zu erreichen.

+1

Sie können CSS Grid erkunden -> https://gridbyexample.com/examples/ – sol

+0

Hallo nicht wirklich sicher, warum dies eine so schlechte Antwort bekommen, ich denke, es ist eine berechtigte Frage war. Ich habe versucht, Grid zu verwenden, und ich war nicht in der Lage, einen Weg zu finden, um das zu bekommen, was ich ursprünglich gefragt habe, nämlich ein sich selbst tetrisierendes Responsive-Grid. Ich schätze aus der Reaktion auf diesen Beitrag, dass es eigentlich nicht möglich ist. – Brian

+1

Hallo Brian, Fragen werden eine viel bessere Antwort bekommen, wenn sie Code enthalten, in diesem Fall den HTML, mit dem du arbeitest, und alle CSS, die du ausprobiert hast. Das Layout in Ihrem Bild kann auf verschiedene Arten erstellt werden. Es ist ein wenig unklar, was Sie unter "Tetris" verstehen - wir könnten dies besser mit Bildern bei verschiedenen Bildschirmbreiten visualisieren. Vielen Dank – sol

Antwort

0

ist die Struktur ähnlich wie bei Ihnen, es ist ein bisschen chaotisch als Klassen verwenden musste und ja ist es Bootstrap-Klasse (col-12 < - dies col-xs-12 ähnlich ist, die für < 576px ist) hinzufügen können

Sie Ihre

erforderlich Größe und Struktur entsprechend.

Lassen Sie mich wissen, wenn Sie etwas nicht verstehen.

.outer { 
 
    width: 500px; 
 
    height: 500px; 
 
    margin: auto; 
 
    margin-top: 20px; 
 
} 
 

 
.top { 
 
    height: 250px; 
 
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container outer"> 
 
    <div class="row top"> 
 
    <div class="col-3" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 

 
    <div class="col-6" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-6" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     <div class="col-6" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     </div> 
 

 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 

 
    <div class="col-3" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:250px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="row top"> 
 

 
    <div class="col-3" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:250px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 

 
    <div class="col-3" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 

 
    <div class="col-3" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 
    <div class="col-3" style="border:1px solid black;"> 
 
     <div class="row"> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     <div class="col-12" style="border:1px solid black; height:125px;"> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 

 

 
    </div> 
 
</div>

+0

Dhaval, das ist ziemlich beeindruckend, ich bin mir nicht sicher, es wird tatsächlich funktionieren und es ist (abgesehen von dem einzelnen Haltepunkt) nicht wirklich ansprechend, obwohl es aussieht wie das Layout, das ich technisch nicht möglich ist, in einem voll ansprechbar zu implementieren Weg. Ich würde gerne mit meinem tatsächlichen Code herumspielen, um zu sehen, ob ich es zum Laufen bringen kann, aber aus irgendeinem Grund bricht das Layout komplett zusammen, wenn Sie es mit Bootstrap 4 verwenden. Irgendeine Idee warum? Die Klassen, die du benutzt hast, sind die gleichen in 4, soweit ich weiß. – Brian

+0

absolut sie arbeiten die gleichen, aber sie haben einen anderen Namen, lass mich überprüfen –

+0

@Brian, überprüfen Sie bitte den aktualisierten Code. –

Verwandte Themen