CSS Object Fit
In this page:
selector {
object-fit: fill | contain | cover | none | scale-down;
}
fill Value
fill बिना object-fit वाले replaced elements के लिए default behavior है, यह media को original aspect ratio नज़रअंदाज़ करते हुए box को पूरी तरह भरने के लिए stretch करता है। यह default behavior शायद ही कभी photos के लिए वह होता है जो आप चाहते हैं, क्योंकि distortion आमतौर पर visually jarring होता है।
- photographs के लिए fill से बचें, यह faces और straight lines को distort करता है, इसे उन graphics के लिए बचाएँ जो stretching सह सकें।
- Accepted values:
- cover — box भरता है और crop करता है, aspect ratio रखता है
- contain — पूरी तरह अंदर fit होता है, aspect ratio रखता है
- fill — default, box भरने के लिए stretch होता है, distort हो सकता है
- none — original size रखता है
- scale-down — none या contain में से छोटा
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: The fill Value
<style>
img {
width: 200px;
height: 100px;
object-fit: fill;
}
</style>
<img src="https://placehold.co/400x400" alt="Stretched, ignoring the original aspect ratio">
contain Value
contain media को shrink या grow करता है ताकि पूरी चीज़ अपने aspect ratio को रखते हुए box के अंदर fit हो जाए, छोटे axis पर खाली जगह छोड़ते हुए। यह value तब ideal है जब आपको guarantee करना है कि पूरी image visible है, भले ही इसका मतलब उसके आस-पास visible खाली space हो।
- box पर background-color के साथ contain जोड़ें ताकि empty letterbox space raw white दिखाने के बजाय design में blend हो जाए।
- Accepted values:
- object-fit: contain — अंदर fit होता है, aspect ratio रखता है
- object-position: center — letterboxing का default alignment
- background-color — खाली space में visible
- width और height — box define करते हैं जिसमें image बैठती है
उदाहरण: The contain Value
<style>
img {
width: 200px;
height: 100px;
object-fit: contain;
background: #eee;
}
</style>
<img src="https://placehold.co/400x400" alt="Entire image visible, empty space on the shorter axis">
cover Value
cover media को तब तक scale up करता है जब तक यह पूरी तरह box भर न दे, किसी भी overflow को crop करते हुए, यह hero images और avatars के लिए सबसे common choice है। क्योंकि image का कुछ हिस्सा crop हो जाता है, cover तब सबसे अच्छा काम करता है जब subject centered हो या object-position को इसके लिए compensate करने के लिए adjust किया गया हो।
- responsive hero banners के लिए cover ideal है क्योंकि यह screen size चाहे जो भी हो हमेशा बिना किसी gaps के space भर देता है।
- Accepted values:
- object-fit: cover — box भरता है, aspect ratio रखता है, overflow crop करता है
- object-position: <position> — तय करता है कि कौन-सा हिस्सा visible रहे
- width और height — box define करते हैं
- नोट: img, video और दूसरे replaced elements पर लागू होता है
उदाहरण: The cover Value
<style>
img {
width: 200px;
height: 100px;
object-fit: cover;
}
</style>
<img src="https://placehold.co/400x400" alt="Fills the box, cropping any overflow">
none और scale-down Values
none box को पूरी तरह नज़रअंदाज़ करता है और media को उसके natural size पर दिखाता है, संभावित रूप से overflow या gaps छोड़ते हुए, जबकि scale-down none या contain में से जो भी छोटा result दे उसे चुनता है।
- scale-down इस्तेमाल करें जब आप चाहते हैं कि बड़ी images fit होने के लिए shrink हों लेकिन छोटी images को stretch up करने के बजाय उनके natural size पर छोड़ दिया जाए।
- Accepted values:
- object-fit: none — natural size रखता है, overflow या crop हो सकता है
- object-fit: scale-down — none और contain में से छोटा
- object-position — image को box के अंदर align करता है
- width और height — box define करते हैं
उदाहरण: The none and scale-down Values
<style>
.none {
width: 100px;
height: 100px;
object-fit: none;
}
.scale-down {
width: 100px;
height: 100px;
object-fit: scale-down;
}
</style>
<img class="none" src="https://placehold.co/300x300" alt="Natural size, may overflow">
<img class="scale-down" src="https://placehold.co/300x300" alt="Shrunk to fit like contain">
object-position से Focal Point Control करना
object-position तय करता है कि जब object-fit crop करे या खाली जगह छोड़े तो media का कौन-सा हिस्सा anchored और visible रहे, keywords या precise percentage और length values accept करते हुए।
इसे adjust किए बिना, original photo में off-center positioned subject को object-fit: cover पूरी तरह crop कर सकता है।
- लोगों की photography करते समय object-position: top इस्तेमाल करें, क्योंकि faces आमतौर पर किसी portrait photo के top के पास होते हैं।
- Accepted values:
- object-position: 50% 50% — default, centered
- object-position: top | bottom | left | right | center — keywords
- object-position: <length> <length> — offsets
- object-position: <percentage> <percentage> — relative
- inherit | initial | unset | revert — हर property द्वारा accepted CSS-wide keywords
उदाहरण: Controlling the Focal Point With object-position
<style>
img {
width: 200px;
height: 100px;
object-fit: cover;
object-position: top;
}
</style>
<img src="https://placehold.co/400x400" alt="Keeps the top of the photo visible when cropped">
- यह भूल जाना कि object-fit को image या video की एक explicit width और height चाहिए, इनके बिना fit होने के लिए कोई box नहीं है।
- object-fit: cover इस्तेमाल करना और उम्मीद करना कि पूरी image visible रहेगी, cover design से overflowing edges crop करता है।
- object-fit को background-size के साथ confuse करना, object-fit सिर्फ img और video जैसे replaced elements पर लागू होता है, background images पर नहीं।
- object-fit control करता है कि किसी image या video को उसके box में fit करने के लिए कैसे resize किया जाए: fill, contain, cover, none, या scale-down।
- cover box को पूरी तरह भरने के लिए crop करता है, जबकि contain बिना crop किए पूरे media को fit होने के लिए shrink करता है।
- object-position चुनता है कि cropping होने पर media का कौन-सा हिस्सा visible रहे, background-position जैसे काम करते हुए।
object-fit और object-position हर modern browser द्वारा supported हैं, पुराने Edge versions में एक known limitation है जो video elements पर object-fit नज़रअंदाज़ करते थे।
Chapter Quiz — Complete all 25 topics to unlock
0/25 topics done
Complete these topics first:
- CSS Container Queries
- CSS Subgrid
- CSS Logical Properties
- CSS Logical Sizing
- CSS Writing Modes
- CSS Aspect Ratio
- CSS Object Fit
- CSS object-position
- CSS Masking
- CSS Math Functions
- CSS Motion Path
- CSS @supports
- CSS @property
- CSS At-Rules
- CSS Cursor
- CSS Will Change
- CSS User Interface
- CSS Print Styles
- CSS Pagination (Print)
- CSS Dark Mode
- CSS Accessibility
- CSS Performance
- CSS Preprocessors
- CSS Frameworks Overview
- CSS Interview Prep