Removed the .flex class, replaced by .eqWrap (personal preference, since I added eqHW for equal height and width), one of your problems was caused by using flex-flow: row nowrap ;. Another problem that I saw is that you did not set the flexible frames to equal width and height. I also got rid of the width in day class. The problems with the HTML code that I saw, you did not put all the months together, and then the days together, and you combined everything in one flexible div field, which also causes everything to appear on the same line.
div { box-sizing: border-box; } .eqWrap { display: flex; } .year{ background: red; } .month { background: blue; } .day { background: green; } .month, .day, .year { border: 1px solid gray; text-align:center; } .equalHW { height:20px; flex: 1; }
<div class="equalHW year">2015</div> <div class="eqWrap"> <div class="equalHW month">Jan</div> <div class="equalHW month">Feb</div> <div class="equalHW month">Mar</div> </div> <div class="eqWrap"> <div class="equalHW day">1</div> <div class="equalHW day">2</div> <div class="equalHW day">3</div> <div class="equalHW day">4</div> <div class="equalHW day">5</div> <div class="equalHW day">6</div> <div class="equalHW day">7</div> <div class="equalHW day">8</div> <div class="equalHW day">1</div> <div class="equalHW day">2</div> <div class="equalHW day">3</div> <div class="equalHW day">4</div> <div class="equalHW day">5</div> <div class="equalHW day">6</div> <div class="equalHW day">7</div> <div class="equalHW day">8</div> <div class="equalHW day">1</div> <div class="equalHW day">2</div> <div class="equalHW day">3</div> <div class="equalHW day">4</div> <div class="equalHW day">5</div> <div class="equalHW day">6</div> <div class="equalHW day">7</div> <div class="equalHW day">8</div> </div> <div class="equalHW year">2016</div> <div class="eqWrap"> <div class="equalHW month">Jan</div> <div class="equalHW month">Feb</div> <div class="equalHW month">Mar</div> </div> <div class="eqWrap"> <div class="equalHW day">1</div> <div class="equalHW day">2</div> <div class="equalHW day">3</div> <div class="equalHW day">4</div> <div class="equalHW day">5</div> <div class="equalHW day">6</div> <div class="equalHW day">7</div> <div class="equalHW day">8</div> <div class="equalHW day">1</div> <div class="equalHW day">2</div> <div class="equalHW day">3</div> <div class="equalHW day">4</div> <div class="equalHW day">5</div> <div class="equalHW day">6</div> <div class="equalHW day">7</div> <div class="equalHW day">8</div> <div class="equalHW day">1</div> <div class="equalHW day">2</div> <div class="equalHW day">3</div> <div class="equalHW day">4</div> <div class="equalHW day">5</div> <div class="equalHW day">6</div> <div class="equalHW day">7</div> <div class="equalHW day">8</div> </div>
> source share