Grid
grid-template-areas
Named Layout Regions
💡 grid-template-areas ek floor plan jaisa hai — tum literally naam se areas define karte ho ("header", "sidebar", "main", "footer"), phir har element ko uske naam wale area mein assign karte ho — visual, readable layout definition.
grid-template-areas se ek "ASCII art" jaisa visual layout define kar sakte ho — har naam ek grid area represent karta hai. Individual items phir grid-area property se batate hain wo kaunse named area mein jaayenge.
.container {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-rows: 80px 1fr 60px;
grid-template-areas:
"sidebar header"
"sidebar main"
"sidebar footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }
/* Layout ekdum visual/readable hai code mein hi! */📋
grid-template-areas ek floor plan jaisa hai — tum literally naam se areas define karte ho ("header", "sidebar", "main", "footer"), phir har element ko uske naam wale area mein assign karte ho — visual, readable layout definition.
1 / 2
⚡ झट से Recap
- grid-template-areas = visual, named layout definition
- grid-area = item ko named area assign karta hai
- Code hi layout ka "map" ban jaata hai — bahut readable
इस page में (2 subtopics)
grid-template-areas mein "." (dot) ek KHAALI cell represent karta hai — koi item us position mein nahi jaayega, jagah blank rehti hai.
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-areas:
"header header header"
"sidebar main ."
"footer footer footer";
}
/* Bottom-right corner mein main content ke saath ek khaali cell hai */Tip: Dots se empty spaces create karna asymmetric layouts ke liye useful hai — jaise ek sidebar jo poori height nahi leta, ek corner khaali chhod ke.
Ek grid item khud bhi apna alag grid container ho sakta hai — "nested grids" complex, multi-level layouts ke liye common pattern (jaise ek main grid area ke andar khud ek chhota grid).
.page {
display: grid;
grid-template-columns: 1fr 1fr;
}
.page .gallery {
display: grid; /* nested grid — page ke andar */
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}Tip: Nested grids independent hote hain — outer grid ki columns/rows inner grid ko directly affect nahi karti, har grid apna khud ka coordinate system define karta hai.