Reputation: 531
I am trying to create a flexbox with 6 boxes that go across the page.
However, for some reason it won't behave properly as they have different sizes.
they must behave like this:
/* =================================
Base Styles
==================================== */
body {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.row {
flex: 1;
}
/* =================================
Media Queries
==================================== */
@media (min-width: 769px) {
.main-header,
.main-nav,
.row {
display: flex;
}
.main-header {
flex-direction: column;
align-items: center;
}
.col {
flex: 1 50%;
}
.row {
flex-wrap: wrap;
}
.item-2 {
order: -1;
}
}
@media (min-width: 1025px) {
.main-header {
flex-direction: row;
justify-content: space-between;
}
.col {
flex-basis: 0;
}
.item-1 {
flex-grow: 1.4;
}
}
<div class="row">
<div class="item-1 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.primary-->
<div class="item-2 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.secondary-->
<div class="item-3 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
<div class="item-4 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
<div class="item-5 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
<div class="item-6 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
</div>
YOU CAN VIEW THE JSFIDDLE HERE: https://jsfiddle.net/ju157mnj/2/
Upvotes: 8
Views: 7880
Reputation: 371133
.row {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.col {
flex: 0 0 calc(33.33% - 30px); /* flex-basis adjustment for margin */
margin: 5px;
}
img {
width: 100%;
}
<div class="row">
<div class="item-1 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.primary-->
<div class="item-2 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.secondary-->
<div class="item-3 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
<div class="item-4 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
<div class="item-5 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
<div class="item-6 col">
<img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png">
</div><!--/.tertiary-->
</div>
Upvotes: 3
Reputation: 869
Made these changes to your css:
img {
max-width: 100%; //Keeps the img in its container
}
.col {
padding: 0 1em;
flex: 1;
min-width: 200px;
}
.row {
flex: 1;
display: flex;
flex-wrap: wrap;
}
https://jsfiddle.net/v2tuoojd/
Upvotes: 0
Reputation: 7927
Your images were quite massive and with your media queries it was a little difficult to edit. However, flex
is powerful enough that you shouldn't need media queries. Below are two examples of how you could present your images (wasn't sure of how you wanted them).
Wraps:
.row {
display: flex;
flex-wrap: wrap;
}
.col {
flex-grow: 1;
margin: 5px;
text-align: center;
}
.col img {
height: 60px;
width: 90px;
}
Fiddle: https://jsfiddle.net/awvpezbt/
3 Per Row (no wrap):
.row {
display: flex;
}
.col {
flex-grow: 1;
margin: 5px;
text-align: center;
}
.col img {
height: 60px;
width: 90px;
}
Fiddle: https://jsfiddle.net/awvpezbt/1/
Upvotes: 0