How TO - Portfolio Gallery
Learn how to create a responsive portfolio gallery grid with CSS.
Portfolio Gallery
Learn how to create a responsive portfolio gallery that varies between 4 columns, 2 columns and full-width columns depending on screen width:
How To Create a Portfolio Website
Step 1) Add HTML:
Example
<!-- MAIN (Center website) -->
<div class="main">
<h1>MYLOGO.COM</h1>
<hr>
<h2>PORTFOLIO</h2>
<p>Resize the browser
window to see the responsive effect.</p>
<!-- Portfolio Gallery Grid
-->
<div class="row">
<div class="column">
<div class="content">
<img src="mountains.jpg" alt="Mountains" style="width:100%">
<h3>My Work</h3>
<p>Lorem ipsum..</p>
</div>
</div>
<div class="column">
<div class="content">
<img src="lights.jpg"
alt="Lights" style="width:100%">
<h3>My
Work</h3>
<p>Lorem ipsum..</p>
</div>
</div>
<div class="column">
<div class="content">
<img src="nature.jpg"
alt="Nature" style="width:100%">
<h3>My
Work</h3>
<p>Lorem ipsum..</p>
</div>
</div>
<div class="column">
<div class="content">
<img src="mountains.jpg"
alt="Mountains" style="width:100%">
<h3>My
Work</h3>
<p>Lorem ipsum..</p>
</div>
</div>
</div>
<div class="content">
<img src="bear.jpg"
alt="Bear" style="width:100%">
<h3>Some Other Work</h3>
<p>Lorem ipsum..</p>
</div>
<!-- END MAIN -->
</div>
Step 2) Add CSS:
Example
* {
box-sizing: border-box;
}
body {
background-color: #f1f1f1;
padding: 20px;
font-family: Arial;
}
/* Center
website */
.main {
max-width: 1000px;
margin: auto;
}
h1 {
font-size: 50px;
word-break: break-all;
}
.row {
margin: 8px -16px;
}
/* Add padding BETWEEN each column (if you
want) */
.row,
.row >
.column {
padding: 8px;
}
/* Create four equal columns that
floats next to each other */
.column {
float: left;
width: 25%;
}
/* Clear floats after rows */
.row:after {
content: "";
display: table;
clear: both;
}
/* Content */
.content {
background-color: white;
padding: 10px;
}
/* Responsive layout -
makes a two column-layout instead of four columns */
@media screen and (max-width:
900px) {
.column {
width: 50%;
}
}
/* Responsive layout - makes the two columns stack on top of each other
instead of next to each other */
@media screen and (max-width: 600px) {
.column
{
width: 100%;
}
}
Try it Yourself »
Tip: Also check out Portfolio Gallery with Filtering