5 मिनट पढ़ें · मुफ़्त · बिना लॉगिन
Margin element के बाहर की खाली जगह है — एक box और अगले box के बीच का gap। यही पेज को भीड़-भाड़ से बचाता है। Margins पारदर्शी होते हैं: आप उन्हें कभी देखते नहीं, सिर्फ वह जगह देखते हैं जो वे बनाते हैं। अगर दो cards बहुत करीब लगें, तो fix लगभग हमेशा margin ही होता है।
हर element के चार margins होते हैं, हर side पर एक। आप उन्हें एक-एक करके तय कर सकते हैं, या एक साथ।
.card {
margin-top: 20px;
margin-right: 10px;
margin-bottom: 20px;
margin-left: 10px;
}
यह लंबा रूप है। Shorthand यही काम एक line में करता है, और values ऊपर से घड़ी की दिशा में चलती हैं: top, right, bottom, left। घड़ी की तरह सोचिए — 12, 3, 6, 9।
.a { margin: 20px; } /* all four sides: 20px */
.b { margin: 10px 30px; } /* top/bottom 10px, left/right 30px */
.c { margin: 10px 20px 30px; } /* top 10px, left/right 20px, bottom 30px */
.d { margin: 10px 20px 30px 40px; } /* top 10, right 20, bottom 30, left 40 */
एक value से चारों sides को वही मिलता है। दो values में पहली top और bottom है, दूसरी left और right। तीन में पहली top, दूसरी left और right, तीसरी bottom। चार में वे घड़ी की दिशा में चलते हैं: top, right, bottom, left। "एक से चार values" वाला यह pattern margin, padding और border-width — तीनों में चलता है। एक बार सीख लीजिए, हर जगह इस्तेमाल कीजिए।
margin-top: -10px; element को 10 pixel ऊपर खींच लेता है, उसके ऊपर वाली चीज़ पर चढ़ा देता है। यह badge को card के ऊपर चढ़ाने की काम की trick है — पर कम इस्तेमाल कीजिए, क्योंकि overlapping elements छोटी screen पर एक-दूसरे को छिपा सकते हैं।margin: auto से बीच में लानाMargin की सबसे मशहूर trick है box को बीच में लाना। Box को एक fixed width दीजिए, फिर उसके left और right margins को auto कर दीजिए — browser बची हुई जगह दोनों तरफ बराबर बाँट देता है, और box बीच में बैठ जाता है।
.card {
width: 400px;
margin: 20px auto;
}
इसे ऐसे पढ़िए: ऊपर-नीचे 20 pixel जगह, और left-right automatic बराबर margins। Width ज़रूरी है — उसके बिना box पूरी line भरकर फैल जाता है, बाँटने के लिए कोई बची जगह ही नहीं रहती, और auto कुछ नहीं करता। यही CSS का सबसे आम "बीच में क्यों नहीं आ रहा?" सवाल है, और जवाब लगभग हमेशा होता है "आप width भूल गए"।
यहाँ margin का वह एक व्यवहार है जो सबको उलझा देता है। जब दो block elements ऊपर-नीचे रखे हों, तो उनके margins जुड़ते नहीं हैं। इसके बजाय वे collapse हो जाते हैं: बड़ा margin जीतता है, छोटा गायब हो जाता है।
/* Two paragraphs, each with margin-bottom: 20px */
p { margin: 0 0 20px 0; }
अगर पहले paragraph का bottom margin 20px है और दूसरे का top margin 30px है, तो उनके बीच का gap 30px होगा — 50px नहीं। Margins बड़े वाले में collapse हो जाते हैं। यही parent और उसके पहले child के बीच भी होता है: child का top margin "बाहर निकलकर" parent को नीचे धकेल सकता है। आम fix हैं parent को थोड़ी padding देना, border देना, या flexbox इस्तेमाल करना — ये सभी collapse को रोक देते हैं।
margin: auto इस्तेमाल करना — box पूरी line भर लेता है, इसलिए बीच में लाने के लिए कुछ बचता ही नहीं।margin: auto इस्तेमाल करना — यह सिर्फ horizontal काम करता है। Vertical centring के लिए flexbox या grid चाहिए।margin: 10px 20px 30px 40px; top, right, bottom, left है, top, left, bottom, right नहीं।margin: 0 auto; block को बीच में लाता है — पर तभी जब उसकी width तय हो।.card { width: 400px; margin: 20px auto; } — card 400 pixel चौड़ा है, और auto left-right margins बची जगह बराबर बाँट देते हैं, इसलिए वह पेज के बीच में बैठता है।.row { margin: 10px 20px 30px 40px; } — चार values वाला shorthand, घड़ी की दिशा में: ऊपर 10px, दाईं ओर 20px, नीचे 30px, बाईं ओर 40px।p { margin: 0 0 20px 0; } — हर paragraph का top margin शून्य और bottom margin 20px है, इसलिए दो paragraphs के बीच gap 20px है — 40px नहीं, क्योंकि margins collapse हो जाते हैं।.badge { margin-top: -12px; } — negative top margin badge को 12 pixel ऊपर खींच लेता है, इसलिए वह sticker की तरह card के ऊपर वाले किनारे पर चढ़ जाता है।<!DOCTYPE html>
<html>
<head>
<title>CSS Margins</title>
<style>
body { font-family: Verdana, sans-serif; background-color: #f1f5f9; }
.card { width: 400px; margin: 20px auto; background-color: white; border: 1px solid #ccc; padding: 20px; position: relative; }
.row { margin: 10px 20px 30px 40px; background-color: #dbeafe; padding: 10px; }
p { margin: 0 0 20px 0; }
.badge { background-color: #dc2626; color: white; display: inline-block; padding: 4px 10px; margin-top: -12px; }
</style>
</head>
<body>
<div class="card">
<span class="badge">NEW</span>
<h2>Summer Training 2026</h2>
<p>Learn HTML, CSS and JavaScript in 6 weeks.</p>
<p>Morning and evening batches available.</p>
<div class="row">This box has margins 10px top, 20px right, 30px bottom, 40px left.</div>
</div>
</body>
</html>
नीचे दिया गया कोड बदलें और चलाएँ दबाएँ — परिणाम तुरंत दिखेगा। कोई फाइल सहेजनी नहीं है, कोई लॉगिन नहीं चाहिए।
AI आपके लिए कोड लिख सकता है, लेकिन वह आपके लिए सोच नहीं सकता। जब आप HTML खुद सीखते हैं, तो आपका दिमाग असली कौशल बनाता है: आप समझते हैं कि पेज ऐसा क्यों दिखता है, टूटने पर उसे ठीक कर सकते हैं, और परीक्षा या इंटरव्यू में बिना मदद के जवाब दे सकते हैं। यही कौशल नौकरी दिलाता है — कॉपी किया हुआ जवाब नहीं।
सभी 30 पाठ पूरे करें, टेस्ट पास करें (80%), ₹10 दें और अपना सर्टिफिकेट पाएँ।
टेस्ट देंदेखकर सीखना पसंद है? वीडियो कोर्स में वही विषय एक-एक करके सिखाए जाते हैं।
Free tutorials teach you the basics. Our paid courses add live projects, mentorship and a certificate.
Browse all coursesAsk about courses, website & more
Request human callback:
Download karne ke liye login karo. Login ke baad yahi page pe rahoge!
Naya ho? Register karo →