CSS Image Centering
In this page:
img {
display: block;
margin: 0 auto;
}
margin: auto से Horizontal Centering
एक fixed width और margin: 0 auto वाली एक block-level image (display: block, जो images default रूप से नहीं होतीं) खुद को अपने containing block के अंदर horizontally center कर लेती है — यह सबसे पुरानी और सबसे simple centering technique है और basic cases के लिए अभी भी सही tool है।
- Accepted values:
- margin: 0 auto — किसी block को horizontally center करता है
- margin-inline: auto — logical equivalent
- display: block — images के लिए ज़रूरी, जो default रूप से inline हैं
- width — container की width से कम होनी चाहिए
उदाहरण: Horizontal Centering with margin: auto
<style>
img {
display: block;
width: 150px;
margin: 0 auto;
}
</style>
<img src="https://placehold.co/150x100" alt="Centered">
text-align से Centering
अगर किसी image को उसकी default inline/inline-block display पर छोड़ दिया जाए, तो उसे text-align: center वाले एक block-level parent में wrap करना उसे बिल्कुल वैसे ही horizontally center कर देता है जैसे यह text की एक line को center करता, image के अपने display या margin को छुए बिना।
- Accepted values:
- text-align: center — inline content को center करता है
- text-align: left | right — दूसरे alignments
- text-align: start | end — writing direction को follow करने वाला alignment
- text-align: justify — lines को stretch करता है
- नोट: image के parent पर लागू होता है, image पर नहीं
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: Centering with text-align
<style>
.wrap {
text-align: center;
}
</style>
<div class="wrap">
<img src="https://placehold.co/150x100" alt="Centered like a line of text">
</div>
Flexbox Centering (दोनों Axes)
किसी container पर justify-content: center और align-items: center के साथ display: flex set करना उसके image child को एक साथ दोनों axes पर center कर देता है, और यह चाहे image या container की exact dimensions पहले से पता हों या न हों काम करता है।
- Accepted values:
- display: flex — एक flex container बनाता है
- justify-content: center — main axis centering
- align-items: center — cross axis centering
- height — container को vertically center करने के लिए एक height चाहिए
उदाहरण: Flexbox Centering (Both Axes)
<style>
.wrap {
display: flex;
justify-content: center;
align-items: center;
height: 150px;
}
</style>
<div class="wrap">
<img src="https://placehold.co/100x80" alt="Centered on both axes">
</div>
transform के साथ Absolute Positioning
किसी image को top: 50%; left: 50% पर absolutely position करना उसके top-left corner को container के center पर move करता है, और transform: translate(-50%, -50%) जोड़ना उसे फिर उसके अपने size के exactly आधे से वापस shift कर देता है — flexbox या grid के बिना उसे perfectly center करते हुए।
- Accepted values:
- position: absolute — इसे flow से बाहर ले जाता है
- top: 50%; left: 50% — corner को center पर move करता है
- transform: translate(-50%, -50%) — इसके अपने size के आधे से वापस खींचता है
- position: relative — reference के तौर पर parent पर
उदाहरण: Absolute Positioning with transform
<style>
.wrap {
position: relative;
height: 150px;
}
img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
<div class="wrap">
<img src="https://placehold.co/100x80" alt="Centered without flexbox">
</div>
Grid Centering
place-items: center वाला एक single-cell CSS Grid container अपने image child को एक declaration में दोनों axes पर center कर देता है, functionally flexbox approach के बराबर लेकिन इस specific single-item case के लिए अक्सर ज़्यादा concise माना जाता है।
- Accepted values:
- display: grid — एक grid container बनाता है
- place-items: center — दोनों axes पर center करता है
- place-content: center — पूरी grid को center करता है
- min-height — vertically center करने के लिए चाहिए
उदाहरण: Grid Centering
<style>
.wrap {
display: grid;
place-items: center;
height: 150px;
}
</style>
<div class="wrap">
<img src="https://placehold.co/100x80" alt="Centered in one declaration">
</div>
display: blockके बिना किसी inline image परmargin: autoइस्तेमाल करना, इसलिए यह center नहीं होता।- image पर
text-align: centerइस्तेमाल करना उसके parent पर करने के बजाय। - अभी भी
display: inlineवाली किसी image परmargin: 0 autoset करना, इसलिए यह center नहीं होता।
हर modern browser में supported: Chrome, Firefox, Safari, Edge और Opera।
Chapter Quiz — Complete all 22 topics to unlock
0/22 topics done
Complete these topics first:
- CSS Gradients
- CSS Shadows
- CSS Filters
- CSS Blend Modes
- CSS Transforms
- CSS 2D Transforms
- CSS 3D Transforms
- CSS Transitions
- CSS Animations
- CSS Image Styling
- CSS Image Effects
- CSS Hover Overlays
- CSS Image Modal
- CSS Image Centering
- CSS Image Shapes
- CSS Buttons
- CSS Columns
- CSS Clip Path
- CSS Shapes
- CSS Scroll Snap
- CSS Architecture: BEM
- CSS Custom Properties