I am a high school web design teacher who is currently teaching my students about how to build their own grid frameworks. I am using the floated .col method as it's easy to understand and flows well from teaching about floats and clears. I am moving onto flexbox next.
I am hitting a weird issue. At the medium size screens, and only certain sizes within that breakpoint, the grid seems to 'break' and the last .col drops to the next line. Here is a link to the JS Fiddle that shows it.
Here is the HTML
<!-- Link to Font Awesome v4 -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- Section from page that is 'breaking' at certian md sizes -->
<section id="features">
<div class="container">
<div class="row">
<div class="col-lg-3 col-md-6">
<i class="fa fa-map-marker" aria-hidden="true"></i>
<h2>Mark Locations</h2>
<p>Mappy lets you save important locations like home, work, or even where you parked your car!</p>
</div>
<div class="col-lg-3 col-md-6">
<i class="fa fa-map" aria-hidden="true"></i>
<h2>View Full Maps</h2>
<p>Mappy also lets your look at up-to-date maps of towns, cities, and even the globe! </p>
</div>
<div class="col-lg-3 col-md-6">
<i class="fa fa-map-signs" aria-hidden="true"></i>
<h2>Get Directions</h2>
<p>Let Mappy guide you where you want to go! Simply enter an address or location and Mappy will find the best route</p>
</div>
<div class="col-lg-3 col-md-6">
<i class="fa fa-car" aria-hidden="true"></i>
<h2>Realtime Traffic</h2>
<p>Mappy is connected to local traffic updates, so it can always provide the fastest route to avoid jams</p>
</div>
</div>
</div>
</section>
And the CSS
/* CUSTOM PAGE CSS*/
#features {
padding: 20px 0;
text-align: center;
}
#features i.fa {
color: #683814;
font-size: 70px;
}
#features h2 {
color: #DCD39E;
margin: 15px 0;
}
/* PULLED FROM CUSTOM GRID FRAMEWORK */
* {
box-sizing: border-box;
}
.container {
max-width: 1000px;
margin: auto;
padding: 0 20px; /*Adds a tiny bit of padding so that as the container shrinks it does not touch the edge*/
}
/* ROWS */
/* Build clearfix into row */
.row::after {
content: "";
display: block;
clear: both;
}
.row {
margin: 0 -15px; /*Offset the col-* padding*/
}
/* COLS */
/*Mobile First cols*/
[class*="col-"] {
width: 100%;
float: left;
padding: 10px 15px;
}
/*Col Styles For Tablets*/
@media screen and (min-width:600px) and (max-width: 992px) {
.col-md-1 {width: 8.33%;}
.col-md-2 {width: 16.66%;}
.col-md-3 {width: 25%;}
.col-md-4 {width: 33.33%;}
.col-md-5 {width: 41.66%;}
.col-md-6 {width: 50%;}
.col-md-7 {width: 58.33%;}
.col-md-8 {width: 66.66%;}
.col-md-9 {width: 75%;}
.col-md-10 {width: 83.33%;}
.col-md-11 {width: 91.66%;}
.col-md-12 {width: 100%;}
} /*end tablet*/
/*Col Styles For Desktops*/
@media screen and (min-width:993px) {
.col-lg-1 {width: 8.33%;}
.col-lg-2 {width: 16.66%;}
.col-lg-3 {width: 25%;}
.col-lg-4 {width: 33.33%;}
.col-lg-5 {width: 41.66%;}
.col-lg-6 {width: 50%;}
.col-lg-7 {width: 58.33%;}
.col-lg-8 {width: 66.66%;}
.col-lg-9 {width: 75%;}
.col-lg-10 {width: 83.33%;}
.col-lg-11 {width: 91.66%;}
.col-lg-12 {width: 100%;}
} /*End Desktop*/
Is there a class that I need to build and add to this? Or is there something that I can change about the way I have my cols built to avoid this entirely? I modeled this after Bootstrap 3.
It looks like this is from 'Mark Locations' copy breaking to more lines than the module next to it.
I was able to fix this by adding a class with a min-height of 220px in the col declarations.
.icon-height {
min-height: 220px;
}
<div class="col-lg-3 col-md-6 icon-height">