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

CSS Grid Item Order

order property बदल देती है कि कोई item visually कहाँ दिखता है, उसकी HTML की एक भी line को move किए बिना।
Syntax
css
item {
  order: integer;
}

order क्या करता है

order एक integer accept करता है और grid (और flex) items का visual painting order control करता है -- कम order value वाले items ज़्यादा वाले items से पहले draw होते हैं, HTML source में उनकी position चाहे जो भी हो।

Note:
  • Accepted values:
  • order: <integer> — कम पहले आता है, default 0
  • order: negative integer — किसी item को बाकियों से पहले move करता है
  • नोट: source order और screen reader order unchanged रहते हैं
  • inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords

उदाहरण: What order Does

css
<style>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.a { order: 2; background: lightblue; padding: 8px; }
.b { order: 1; background: lightgreen; padding: 8px; }
</style>
<div class="container">
  <div class="a">Coded first, painted second</div>
  <div class="b">Coded second, painted first</div>
</div>

Default order Value

हर item का एक implicit order 0 होता है जब तक आप इसे explicitly set न करें, इसलिए किसी item पर order: -1 set करना इसे बाकी untouched siblings से पहले move कर देता है, और order: 1 इसे उनके बाद move करता है।

Note:
  • Accepted values:
  • order: 0 — हर item के लिए default
  • order: -1 — default items से पहले move करता है
  • order: 1 — default items के बाद move करता है
  • source order — tie-breaker
  • inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords

उदाहरण: Default order Value

css
<style>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.container div {
  background: lightblue;
  padding: 8px;
}
.first { order: -1; background: coral; }
</style>
<div class="container">
  <div>Default order: 0</div>
  <div class="first">order: -1, moves before</div>
</div>

बिना HTML Edit किए Reorder करना

order आमतौर पर किसी item को visually promote करने के लिए इस्तेमाल होता है -- जैसे underlying markup या उसका source order छुए बिना किसी "featured" product card को आगे move करना।

Note:
  • Accepted values:
  • order: -1 — पहला
  • order: 1 — आख़िरी
  • order: <integer> — कोई भी position
  • grid-row / grid-column — alternative explicit placement
  • inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords

उदाहरण: Reordering Without Editing HTML

css
<style>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.container div {
  background: lightblue;
  padding: 8px;
}
.featured { order: -1; background: coral; }
</style>
<div class="container">
  <div>Product A</div>
  <div class="featured">Featured product, visually promoted</div>
  <div>Product B</div>
</div>

Accessibility Trap

Screen readers और keyboard tab order अभी भी original HTML source order follow करते हैं, order पर set की गई visual order को नहीं -- इसलिए meaningful content reordering के लिए order पर निर्भर रहना users जो देखते हैं और assistive tech जो announce करता है उनके बीच एक confusing mismatch बना सकता है।

Note:
  • Accepted values:
  • order — सिर्फ visual order बदलता है
  • tab order — DOM को follow करता है
  • screen readers — DOM order में पढ़ते हैं
  • reading-flow — focus order को sync में रखने वाली एक emerging property

उदाहरण: The Accessibility Trap

css
<style>
.container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.container div {
  background: lightblue;
  padding: 8px;
}
.second { order: -1; background: coral; }
</style>
<div class="container">
  <div>First in HTML source and tab order</div>
  <div class="second">Painted first visually, but still second in tab order</div>
</div>

इसके बजाय असली HTML Reordering कब Prefer करें

किसी भी ऐसी reordering के लिए जो असली reading/interaction sequence बदलती है (सिर्फ decorative visual tweaks नहीं), element को खुद HTML में move करना order की तरफ़ जाने से ज़्यादा accessible choice है।

Note:
  • Accepted values:
  • HTML को reorder करें — meaning के लिए सबसे अच्छा
  • order — सिर्फ cosmetic changes के लिए
  • grid-template-areas — एक alternative जो DOM order भी untouched छोड़ता है
  • नोट: DOM order को logical रखें

उदाहरण: When to Prefer Real HTML Reordering Instead

css
<style>
.container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.container div {
  background: lightblue;
  padding: 8px;
}
</style>
<div class="container">
  <div>Moved here in the actual HTML, matching both visual and reading order</div>
  <div>Second item</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. order बदलना और यह भूल जाना कि keyboard focus और screen readers अभी भी HTML order follow करते हैं।
  2. किसी ऐसे element पर order इस्तेमाल करना जो grid या flex item नहीं है।
  3. order का भारी इस्तेमाल करना जब HTML को बस rearrange किया जा सकता था।
ब्राउज़र सपोर्ट

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.