← Back to CSS Course | Chapter 11: Grid | Lesson 2 of 10

CSS Grid Container

एक grid container को अपने page पर रखी एक खाली spreadsheet की तरह सोचें -- एक बार जब आप इसे switch on करते हैं, तो हर direct child automatically अपने खुद के cell में snap हो जाता है।
Syntax
css
selector {
  display: grid | inline-grid;
  grid-template-columns: size1 size2;
}

किसी Element को Grid Container में बदलना

किसी element पर display: grid set करना इसे एक grid container बना देता है, और हर direct child element automatically एक grid item बन जाता है -- children पर खुद कोई extra markup या classes की ज़रूरत नहीं। यही एकमात्र switch है जो उस container के लिए पूरे grid layout system को activate करता है।

Note:
  • Accepted values:
  • display — grid | inline-grid
  • grid-template-columns — track list
  • grid-template-rows — track list
  • grid-template-areas — named area strings
  • gap — tracks के बीच length
  • justify-content | align-content — पूरी grid को उसके container में place करता है

उदाहरण: Turning an Element into a Grid Container

css
<style>
.container {
  display: grid;
  background: #eef;
  padding: 10px;
  gap: 8px;
}
.container div {
  background: seagreen;
  color: white;
  padding: 10px;
}
</style>
<div class="container">
  <div>Auto grid item</div>
  <div>Auto grid item</div>
</div>

Container/Item Relationship

Grid properties साफ़ तौर पर दो groups में बँटती हैं: container-level properties (grid-template-columns, gap, justify-items) जिन्हें आप parent पर एक बार set करते हैं, और item-level properties (grid-column, justify-self) जिन्हें आप individually children पर set करते हैं जब आपको default placement override करनी हो।

उदाहरण: The Container/Item Relationship

css
<style>
.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-items: center;
  background: #eef;
  padding: 10px;
  gap: 8px;
}
.item {
  justify-self: start;
  background: seagreen;
  color: white;
  padding: 10px;
}
.container > div:not(.item) {
  background: mediumpurple;
  color: white;
  padding: 10px;
}
</style>
<div class="container">
  <div class="item">Item overrides placement</div>
  <div>Default item</div>
</div>

grid-template-columns से Columns Define करना

grid-template-columns left से right हर column के लिए एक size list करती है, इसलिए "200px 1fr 1fr" जैसी तीन values exactly उन widths के साथ तीन columns बनाती हैं। आप जितनी values देते हैं वही grid में columns की संख्या होगी।

Note:
  • Accepted values:
  • grid-template-columns: <track-list> — जैसे 200px 1fr 2fr
  • repeat(<n>, <track>) — repeated tracks
  • minmax(<min>, <max>) — flexible tracks
  • none — default, कोई explicit columns नहीं
  • auto — content से sized एक track
  • subgrid — parent grid के columns reuse करता है
  • inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords

उदाहरण: Defining Columns with grid-template-columns

css
<style>
.container {
  display: grid;
  grid-template-columns: 200px 1fr 1fr;
  gap: 8px;
  background: #eef;
  padding: 10px;
}
.container div {
  background: seagreen;
  color: white;
  padding: 10px;
}
</style>
<div class="container">
  <div>200px</div>
  <div>1fr</div>
  <div>1fr</div>
</div>

grid-template-rows से Rows Define करना

grid-template-rows बिल्कुल वैसे ही काम करती है लेकिन vertical axis के लिए, आपको specific row heights fix करने देती है इसके बजाय कि हर row अपने सबसे लंबे content के हिसाब से खुद automatically size हो।

Note:
  • Accepted values:
  • grid-template-rows: <track-list> — जैसे 100px auto 1fr
  • repeat(<n>, <track>) — repeated rows
  • minmax(<min>, <max>) — flexible rows
  • none — default, कोई explicit rows नहीं
  • auto — content से sized एक row
  • subgrid — parent grid के rows reuse करता है
  • inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords

उदाहरण: Defining Rows with grid-template-rows

css
<style>
.container {
  display: grid;
  grid-template-rows: 100px 100px;
  gap: 8px;
  background: #eef;
  padding: 10px;
}
.container div {
  background: seagreen;
  color: white;
  padding: 10px;
}
</style>
<div class="container">
  <div>Row 1</div>
  <div>Row 2</div>
</div>

Implicit बनाम Explicit Grids

grid-template-* से define की गई rows या columns explicit grid बनाती हैं; अगर आप उस grid में जगह से ज़्यादा items रखते हैं, तो CSS Grid चुपचाप overflow रखने के लिए extra implicit rows बना देता है, जो grid-auto-rows set करने पर उससे sized होती हैं।

grid-auto-flow control करता है कि वे implicit items कैसे pack होते हैं -- row (default) पहले rows भरता है, column पहले columns भरता है, और dense पहले वाले gaps को backfill करता है -- जबकि grid-auto-columns आपको implicit columns को उसी तरह size करने देता है जैसे grid-auto-rows implicit rows को करता है।

Note:
  • Accepted values:
  • grid-auto-rows: <track-size> — implicit rows का size (default auto)
  • grid-auto-columns: <track-size> — implicit columns का size (default auto)
  • grid-auto-flow: row | column — auto-placement की direction (default row)
  • grid-auto-flow: dense — holes भरता है; row dense या column dense के रूप में combine करें
  • inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords

उदाहरण: Implicit vs Explicit Grids

css
<style>
.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 80px;
  grid-auto-flow: row;
  gap: 8px;
  background: #eef;
  padding: 10px;
}
.container div {
  background: seagreen;
  color: white;
  padding: 10px;
}
</style>
<div class="container">
  <div>Explicit</div>
  <div>Explicit</div>
  <div>Implicit overflow row</div>
</div>
Live Example
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. container के बजाय किसी item पर grid-template-columns लागू करना।
  2. container पर display: grid भूल जाना।
  3. यह उम्मीद करना कि rows tब भी defined होंगी जब सिर्फ columns defined हों, जबकि बाकी automatically बनते हैं (implicit rows)।
ब्राउज़र सपोर्ट

CSS Grid Chrome 57+, Firefox 52+, Safari 10.1+ और Edge 16+ में supported है।

🔒

Chapter Quiz — Complete all 10 topics to unlock

0/10 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.