CSS Margins
In this page:
selector {
margin: top right bottom left;
margin-top: length;
margin: 0 auto;
}
Margin क्या है?
Margin किसी element के border के बाहर की transparent space है। इसका कोई background या visible edge नहीं होता, यह बस पड़ोसी elements को और दूर धकेलती है। elements के बीच adjacent vertical margins एक ही margin में collapse हो सकते हैं, यह एक quirk है जो कई beginners को हैरान करती है।
उदाहरण: What Is Margin?
<style>
.box {
margin: 20px;
background: lightblue;
}
</style>
<div class="box">Box with margin</div>
सभी Sides पर Margin Set करना
margin को एक single value के साथ लिखना उस exact amount की space को element के सभी चार sides पर एक साथ लागू करता है। यह single-value shortcut सुविधाजनक है, लेकिन असली layouts को अक्सर अलग-अलग sides पर अलग spacing चाहिए होती है।
- एक single-value margin बिना हर side के बारे में अलग सोचे uniform spacing जोड़ने का सबसे simple तरीका है।
- Accepted values:
- length — जैसे 16px, 1rem
- percentage — container की width के relative
- auto — browser space calculate करता है
- negative length — element को बाहर की तरफ़ खींचता है
- एक से चार values — top, right, bottom, left order
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: Setting Margin on All Sides
<style>
.box {
margin: 20px;
background: lightblue;
padding: 10px;
}
</style>
<div class="box">Uniform margin on all sides</div>
Individual Margin Sides
margin-top, margin-right, margin-bottom, और margin-left आपको किसी element के सिर्फ एक side पर spacing control करने देते हैं, बाकियों से independent। ये चार properties आपको पूरा independent control देती हैं जब किसी design को asymmetric spacing चाहिए।
- Individual side margins खासतौर पर उपयोगी हैं किसी heading को उसके ऊपर के content से दूर करने के लिए, बिना sides या bottom को असर किए।
- Accepted values:
- margin-top — ऊपर की space
- margin-right — दाईं तरफ़ की space
- margin-bottom — नीचे की space
- margin-left — बाईं तरफ़ की space
- हर एक एक length, percentage, auto या negative value लेता है
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: Individual Margin Sides
<style>
.box {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
background: lightblue;
padding: 10px;
}
</style>
<div class="box">Different margin per side</div>
Margin Shorthand
margin shorthand एक declaration में सभी चार sides set करता है, और values की संख्या तय करती है कि वे कैसे लागू होती हैं। एक value सभी चार sides set करती है। दो values पहले top और bottom, फिर left और right set करती हैं। तीन values top, फिर left और right साथ में, फिर bottom set करती हैं। चार values clockwise जाती हैं, top से शुरू होकर: top, right, bottom, left।
Margins percentages भी accept करते हैं, जैसे margin: 5%, जो parent (containing) block की width से calculate होता है, यहाँ तक कि top और bottom margins के लिए भी। सारा margin हटाने के लिए margin: 0 इस्तेमाल करें, और किसी width वाले block को center करने के लिए left और right पर auto।
- Order याद रखने के लिए TRouBLe इस्तेमाल करें: top, right, bottom, left, top से शुरू होकर clockwise।
- Accepted values:
- length | percentage | auto — हर value (auto और negatives allowed हैं)
- 1 value — सभी चार sides
- 2 values — top/bottom, फिर left/right
- 3 values — top, left/right, bottom
- 4 values — top, right, bottom, left (clockwise)
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: Margin Shorthand
<style>
.wrap { border: 1px dashed #999; }
.box { background: lightblue; padding: 4px; }
.one { margin: 20px; }
.two { margin: 10px 30px; }
.three { margin: 5px 20px 15px; }
.four { margin: 5px 10px 15px 20px; }
</style>
<div class="wrap">
<div class="box one">1 value — all sides 20px</div>
<div class="box two">2 values — top/bottom 10px, left/right 30px</div>
<div class="box three">3 values — top 5px, sides 20px, bottom 15px</div>
<div class="box four">4 values — top 5px, right 10px, bottom 15px, left 20px</div>
</div>
Margin Auto और Centering
किसी defined width वाले block-level element पर left और right margin को auto set करना उसे उसके container के अंदर horizontally center कर देता है, यह एक common और reliable centering technique है।
यह technique सिर्फ उन block-level elements पर काम करती है जिनकी explicit width है, क्योंकि auto margins को distribute करने के लिए extra space चाहिए होती है।
- margin: 0 auto एक classic shorthand pattern है: zero vertical margin, automatic (centering) horizontal margin।
- Accepted values:
- auto — free space को बाँटता है (width वाले block को center करता है)
- 0 auto — कोई vertical margin नहीं, horizontally centered
- length — space की एक fixed amount
- एक side पर auto — flex layouts में element को दूसरी तरफ़ धकेलता है
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: Margin Auto and Centering
<style>
.box {
width: 200px;
margin: 0 auto;
background: lightgreen;
}
</style>
<div class="box">Centered box</div>
- margin (border के बाहर की space) को padding (border के अंदर की space) के साथ confuse करना।
- दो stacked block elements के बीच vertical margin collapsing से हैरान होना।
- margin: auto इस्तेमाल करना और उम्मीद करना कि यह ऐसे element को center करेगा जिसकी defined width नहीं है।
- Margin किसी element के border के बाहर की space है, जो उसे पड़ोसी elements से अलग करती है।
- Margin को सभी sides पर एक साथ, individual sides पर, या shorthand property से set किया जा सकता है।
- margin: auto एक set width वाले block element को horizontally center करने की एक common technique है।
यहाँ बताई गई सभी standard CSS margin properties हर modern browser में supported हैं।
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: