Posted in
6
2:19 am, September 6, 2019
Custom 12 Grid using CSS Grid
For a while i have been using frameworks for their easy grid systems, like foundation and bootstrap. I guess this is a bit lazy and very bloated as you are loading the full css library and using about 10% of it for the grid and some smaller components.
I have been learning how to use css grid a bit lately and it seems fairly simple to replicate a 12 grid with it for fairly minimal css. here is my test so far.
CSS
/*
@import url('https://fonts.googleapis.com/css?family=Quicksand:400,700&display=swap');
* {
font-family: 'Quicksand', sans-serif;
}
*/
* {
box-sizing: border-box;
transition: all 0.2s;
scroll-behavior: smooth;
}
.wrap {
max-width:1200px;
margin:0 auto;
width:100%;
}
.grid {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-column-gap: 3px;
grid-row-gap: 3px;
}
.mb-10px {
margin-bottom:10px;
}
.w-1 { grid-column: span 1; }
.w-2 { grid-column: span 2; }
.w-3 { grid-column: span 3; }
.w-4 { grid-column: span 4; }
.w-5 { grid-column: span 5; }
.w-6 { grid-column: span 6; }
.w-7 { grid-column: span 7; }
.w-8 { grid-column: span 8; }
.w-9 { grid-column: span 9; }
.w-10 { grid-column: span 10; }
.w-11 { grid-column: span 11; }
.w-12 { grid-column: span 12; }
@media(max-width:1000px) {
.colx {
grid-column: span 12;
}
}
.test-box:hover {
background:linear-gradient(#777,#444);
}
.test-box {
background:linear-gradient(#999,#666);
border-radius:3px;
padding:5px;
color:#FFF;
text-shadow:0px 1px 2px #000;
}
HTML
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-3'>
<div class='test-box'>w-3</div>
</div>
<div class='colx w-3'>
<div class='test-box'>w-3</div>
</div>
<div class='colx w-3'>
<div class='test-box'>w-3</div>
</div>
<div class='colx w-3'>
<div class='test-box'>w-3</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-4'>
<div class='test-box'>w-4</div>
</div>
<div class='colx w-4'>
<div class='test-box'>w-4</div>
</div>
<div class='colx w-4'>
<div class='test-box'>w-4</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-5'>
<div class='test-box'>w-5</div>
</div>
<div class='colx w-5'>
<div class='test-box'>w-5</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-6'>
<div class='test-box'>w-6</div>
</div>
<div class='colx w-6'>
<div class='test-box'>w-6</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-7'>
<div class='test-box'>w-7</div>
</div>
<div class='colx w-5'>
<div class='test-box'>w-5</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-8'>
<div class='test-box'>w-8</div>
</div>
<div class='colx w-4'>
<div class='test-box'>w-4</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-9'>
<div class='test-box'>w-9</div>
</div>
<div class='colx w-3'>
<div class='test-box'>w-3</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-10'>
<div class='test-box'>w-10</div>
</div>
<div class='colx w-2'>
<div class='test-box'>w-2</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-11'>
<div class='test-box'>w-11</div>
</div>
<div class='colx w-1'>
<div class='test-box'>w-1</div>
</div>
</div>
</div>
<div class='wrap mb-10px'>
<div class='grid'>
<div class='colx w-12'>
<div class='test-box'>w-12</div>
</div>
</div>
</div>
Working Result
See how the custom css grid works below
w-1
w-1
w-1
w-1
w-1
w-1
w-1
w-1
w-1
w-1
w-1
w-1
w-2
w-2
w-2
w-2
w-2
w-2
w-3
w-3
w-3
w-3
w-4
w-4
w-4
w-5
w-5
w-2
w-6
w-6
w-7
w-5
w-8
w-4
w-9
w-3
w-10
w-2
w-11
w-1
w-12
External Link for Custom 12 Grid using CSS Grid
View Statistics
This Week
53
This Month
246
This Year
0
Add Comment
Other Items in css
add an outline to everything!
hide the first h3 tag on the page with css
center align vertical 2 items in a container flex
simple javascript no library accordion
button zoom effect with expanding background
scroll left animation
using css counter-increment to add numbering to elements
hidden scroll anchor for custom scroll position
ken burns slow image zoom
using a radial gradient for background overlay
change selected color on input elements css
animated duck on footer
using filter grayscale to make an image dark
bootstrap dark mode
twitter icon font awesome
how to bundle css files together using windows or mac
button with separated chevron
vertically align text within a fixed height div using flex
how to view a web page in its printer format
white space break word css
roboto and poppins fonts include quick code
CSS Drawing - Beach Scene
404 Error Page Codepen
right align something in its element
hide the third row in a table with css
how to make a transparent logo white with css
target last item css with :last-of-type
target first item css with :first-of-type
responsive menu research full screen multi level
make your images look non squished when not using image backgrounds v2
target 1st td in a table with css
backdrop-filter: blur(10px);
add chevrons to a ul list
foundation responsive tables
allow a title to be in the foreground while still having a before overlay for the background
css responsive max and min targets @media
pre-line white space settings
pre-wrap preserve line spacing but also wrap where needed
css double page document preview with shadow
adding a background image to the titles of the dark mode card on this page
blur the background image while keeping the foreground normal
background image greyscale filter while foreground is still in colour
zoom background of element when active
rounded click me button with icon
logo tickers marquee slow scrolling
add a moving chevron to your href link
inline form field padding
using text-stroke to add a border to your text
adding background blur to an image using css fill screen
using the nth-of-type selector to target a class with the same name
Related Search Terms
Other Categories in Code
c testing apache apps asp bat bootstrap bootstrap templates core css css grid design elements fancybox fonts foundation framework gimp git html icons ideas images javascript jquery js linux mac nginx node php php functions php simple html dom pi400 python react sections site bugs site documentation sql sqlite sublime svg templates tools virtual box webdev windows wordpress