Responsive Grid

by DelphinPRO

HTML

<div id="wrapper">
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>1</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>2</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>3</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>4</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>5</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>6</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>7</h1>
                </div>
            </div>
        </section>
        <section class="box">
            <div class="box-in">
                <img src="//lorempixel.com/1/1/" alt=""/>
                <div class="box-content">
                <h1>8</h1>
                </div>
        ...

SCSS

#wrapper {
    background: silver;
	height: 100%;
    width:100%;
	padding: 10px;
	box-sizing: border-box;
	position: fixed;
	overflow-y: auto; 
}

.box {
    min-width: 200px;
    max-width: 400px;
    width: 100%;
    
    padding: 10px;
    
	float: left;
    box-sizing: border-box;
}
$minWidthColumn: 200px;
$twoColumnBreakpoint: $minWidthColumn * 2 + 40; // 40 - это расстояние меж блоков.
$threeColumnBreakpoint: $minWidthColumn * 3 + 40;
$fourColumnBreakpoint: $minWidthColumn * 4 + 40;
$fiveColumnBreakpoint: $minWidthColumn * 5 + 40;

@media (min-width: $twoColumnBreakpoint) {
    .box {
        width: percentage(1/2);
    }
}
@media (min-width: $threeColumnBreakpoint) {
    .box {
        width: percentage(1/3);
    }
}
@media (min-width: $fourColumnBreakpoint) {
    .box {
        width: percentage(1/4);
    }
}
@media (min-width: $fiveColumnBreakpoint) {
    .box {
        width: percentage(1/5);
    }
}
.box-in {
    text-align:center;
	background-color: white;
	border-radius: 3px;
	position: relative;
	box-shadow:         0px 1px 2px 0px rgba(50, 50, 50, 0.3);
    
    > img {
        display: block;
        width: 100%;
        opacity: 0;
    }
}
.box-content {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
	padding: 15px;
    overflow: hidden;
}