flex flow media queries
multiple responsive column layouts within a single flex container.
by Mukul kant
HTML
<body>
<header>
<h1>Responsive Flexbox</h1>
<p>Multiple responsive column layouts within a single flexbox container. Resize the browser to watch the breakpoints happen for each column size.</p>
</header>
<div class="layout">
<div class="layout__item layout__item--whole">whole</div>
<div class="layout__item layout__item--half">half</div>
<div class="layout__item layout__item--half">half</div>
<div class="layout__item layout__item--third">third</div>
<div class="layout__item layout__item--third">third</div>
<div class="layout__item layout__item--third">third</div>
<div class="layout__item layout__item--quarter">quarter</div>
<div class="layout__item layout__item--quarter">quarter</div>
<div class="layout__item layout__item--quarter">quarter</div>
<div class="layout__item layout__item--quarter">quarter</div>
</div>
</body>
CSS
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
.flexWrap{
display: flex;
flex-wrap: wrap;
}
.imgWrap{
flex: 1 0 auto;
flex: 1;
}
.imgWrap img{
display: block;
width: 100%;
}
.contentWrap{
background: #9fd3e0;
flex: 1 0 auto;
flex: 1;
}
.contentWrap .innerBox{
padding: 15px;
}
.contentWrap ul{
display: flex;
justify-content: space-evenly;
flex-wrap: wrap;
list-style: none;
text-align: center;
}
.contentWrap ul li a{
min-width: 60px;
background: #ef1351;
color: #fff;
padding: 0.3rem 0.6rem;
list-style: none;
border-radius: 5px;
text-decoration: none;
display: block;
font-size: 12px;
}
.contentWrap h1{
font-size: 24px;
margin: 10px 0;
}
.contentWrap h1 a{
text-decoration: none;
color: #333;
}
.contentWrap a{color: #24338e}
@media screen and (max-width: 650px){
.flexWrap{
flex-direction: column;
}
}
@media screen and (max-width: 300px){
.contentWrap ul li{
flex-grow: 1;
flex-shrink: 0;
flex-basis: 50%;
}
.contentWrap ul li a{
display: inline-block;
margin: 5px 0;
}
}