I'm currently working on setting up a profiles section on my website featuring 4 profile boxes:
https://i.sstatic.net/lWrPA.png
While the layout looks good on larger screens, I am facing issues with how the boxes wrap on smaller screen sizes. Right now, the boxes wrap to the next row when they hit the edge of the screen, resulting in 3 profiles on one row and 1 on the next:
https://i.sstatic.net/E24O2.png
I'm looking to prevent this and implement 3 different configurations based on screen size:
https://i.sstatic.net/gM0qe.png
Can this be achieved using flexbox?
.container {
margin-bottom: 10px;
margin-top: 10px;
padding: 10px;
align-items: flex-start;
flex-basis: auto;
}
.flex-container {
margin: 1px;
list-style: none;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
justify-content: space-between;
}
.flex-item {
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
transition: 0.1s;
-webkit-filter: opacity(60%);
/* Safari 6.0 - 9.0 */
filter: opacity(60%);
width: 231px;
height: 350px;
margin-top: 10px;
line-height: 10px;
color: white;
font-weight: bold;
text-align: center;
}
.flex-item h4 {
font-size: 22pt;
}
.flex-item p {
font-size: 14pt;
}
.flex-item:hover {
box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.4);
-webkit-filter: opacity(100%);
/* Safari 6.0 - 9.0 */
filter: opacity(100%);
}
.person1 {
background: #FB8B4F;
}
.person2 {
background: #1FACE4;
}
.person3 {
background: #EF626B;
}
.person4 {
background: #8BE41F;
}
/*When screen is < 1000px : green */
@media screen and (max-width: 1000px) {
/* body {
background-color: lightgreen;
} */
.flex-item {
transform: scale(0.9);
}
}
/*When screen is < 500px : blue */
@media screen and (max-width: 800px) {
.flex-item {
flex-direction: column;
align-items:center;
}
/* body {
background-color: lightblue;
} */
}
<!--Profiles-->
<div class="container">
<hr size="0.5">
<h1 id="people">People</h1>
<ul class="flex-container">
<li class="flex-item person1">
<!-- <img src="images/profile_placeholder.gif" alt="p1"> -->
<h4><b>Person1</b></h4>
<p>Founder</p>
</li>
<li class="flex-item person2">
<!-- <img src="images/profile_placeholder.gif" alt="p2"> -->
<h4><b>Person2</b></h4>
<p>Treasurer</p>
</li>
<li class="flex-item person3">
<!-- <img src="images/profile_placeholder.gif" alt="p3"> -->
<h4><b>Person3</b></h4>
<p>Vice-president</p>
</li>
<li class="flex-item person4">
<!-- <img src="images/profile_placeholder.gif" alt="p4"> -->
<h4><b>Person4</b></h4>
<p>Secretary</p>
</li>
</ul>
</div>