वर्तमान में, स्टाइल के साथ, मैं उपयोग कर सकता हूं width: 100%
और auto
ऊंचाई पर (या इसके विपरीत), लेकिन मैं अभी भी छवि को एक विशिष्ट स्थिति में नहीं बाधित कर सकता हूं, या तो क्रमशः बहुत चौड़ा या लंबा हो सकता है।
कोई विचार?
वर्तमान में, स्टाइल के साथ, मैं उपयोग कर सकता हूं width: 100%
और auto
ऊंचाई पर (या इसके विपरीत), लेकिन मैं अभी भी छवि को एक विशिष्ट स्थिति में नहीं बाधित कर सकता हूं, या तो क्रमशः बहुत चौड़ा या लंबा हो सकता है।
कोई विचार?
जवाबों:
यदि आप केवल एक आयाम को एक छवि पर परिभाषित करते हैं तो छवि पहलू अनुपात हमेशा संरक्षित रहेगा।
क्या मुद्दा यह है कि छवि आपकी पसंद से बड़ी / लंबी है?
आप इसे एक DIV के अंदर रख सकते हैं जो अधिकतम ऊंचाई / चौड़ाई पर सेट है जिसे आप छवि के लिए चाहते हैं, और फिर अतिप्रवाह सेट करें: छिपा हुआ। जो कुछ भी आप चाहते हैं उससे आगे फसल होगी।
यदि कोई छवि 100% चौड़ी और ऊँचाई पर है: ऑटो और आपको लगता है कि यह बहुत लंबा है, इसलिए विशेष रूप से क्योंकि पहलू अनुपात संरक्षित है। आपको फसल, या पहलू अनुपात को बदलने की आवश्यकता होगी।
कृपया जो आप विशेष रूप से पूरा करने की कोशिश कर रहे हैं उसके बारे में कुछ और जानकारी प्रदान करें और मैं और अधिक मदद करने की कोशिश करूँगा!
--- फ़ीडबैक पर संपादित संपादित करें ---
क्या आप अधिकतम-चौड़ाई और अधिकतम-ऊंचाई गुणों से परिचित हैं? आप हमेशा उन के बजाय सेट कर सकते हैं। यदि आप कोई न्यूनतम सेट नहीं करते हैं और आप अधिकतम ऊँचाई और चौड़ाई निर्धारित करते हैं, तो आपकी छवि विकृत नहीं होगी (पहलू अनुपात संरक्षित किया जाएगा) और यह किसी से बड़ा नहीं होगा जो भी आयाम सबसे लंबा है और इसकी अधिकतम हिट करता है।
object-fit
किसी काम का नहीं?
कुछ साल बाद, उसी आवश्यकता की तलाश में, मुझे बैकग्राउंड-साइज़ का उपयोग करके CSS विकल्प मिला।
यह आधुनिक ब्राउज़रों (IE9 +) में काम करने वाला है।
<div id="container" style="background-image:url(myimage.png)">
</div>
और शैली:
#container
{
width: 100px; /*or 70%, or what you want*/
height: 200px; /*or 70%, or what you want*/
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
संदर्भ: http://www.w3schools.com/cssref/css3_pr_background-size.asp
और डेमो: http://www.w3schools.com/cssref/playit.asp?filename=playcss_background-size
CSS max-width
प्रॉपर्टी को करने के लिए 100%
, एक छवि इसकी पेरेंटिंग तत्व की चौड़ाई को भर देगी, लेकिन वास्तविक आकार से बड़ा रेंडर नहीं करेगी, इस प्रकार रिज़ॉल्यूशन को संरक्षित करना।
छवि के पहलू अनुपात height
को auto
बनाए रखने के लिए संपत्ति सेट करना , इस तकनीक का उपयोग करके स्थैतिक ऊंचाई को ओवरराइड करने की अनुमति मिलती है और छवि को सभी दिशाओं में आनुपातिक रूप से फ्लेक्स करने में सक्षम बनाता है।
img {
max-width: 100%;
height: auto;
}
height
auto
सरल सुरुचिपूर्ण काम कर समाधान:
img {
width: 600px; /*width of parent container*/
height: 350px; /*height of parent container*/
object-fit: contain;
position: relative;
top: 50%;
transform: translateY(-50%);
}
object-fit
। बिल्कुल वही जो मुझे चाहिए था।
object-fit
से IE और एज के किसी भी संस्करण में 28 मार्च, 2017 तक समर्थित नहीं है।
object-fit: contain
और object-fit: cover
न की तरह width
100% की तरह - आप ठोस इकाइयां तरह का उपयोग करना चाहिएpx
object-fit
साथ max-width
और के max-height
रूप में अन्य उत्तरों में इस्तेमाल करने की कोशिश की , लेकिन वह काम नहीं किया। यह और भी साथ यादृच्छिक छवि आकार के लिए पूरी तरह से काम करता है width
औरheight 100%
एक ही मुद्दा था। मेरे लिए समस्या यह थी कि ऊंचाई की संपत्ति को पहले से ही कहीं और परिभाषित किया गया था, इसे इस तरह से निर्धारित किया गया था:
.img{
max-width: 100%;
max-height: 100%;
height: inherit !important;
}
सरल समाधान:
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
margin: 0;
padding: 0;
वैसे, यदि आप इसे पेरेंट डिव कंटेनर में रखना चाहते हैं, तो आप उन सीएसएस गुणों को जोड़ सकते हैं:
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
यह वास्तव में उम्मीद के मुताबिक काम करना चाहिए :)
उत्तरों में से एक में पृष्ठभूमि का आकार शामिल है: इसमें css स्टेटमेंट शामिल है जो मुझे बहुत पसंद है क्योंकि यह सीधा-सीधा बयान है कि आप क्या करना चाहते हैं और ब्राउज़र बस इसे करता है।
दुर्भाग्य से जल्दी या बाद में आपको एक छाया लागू करने की आवश्यकता होती है जो दुर्भाग्य से पृष्ठभूमि छवि समाधानों के साथ अच्छा नहीं खेलेगी।
तो मान लें कि आपके पास एक कंटेनर है जो उत्तरदायी है, लेकिन इसमें न्यूनतम और अधिकतम चौड़ाई और ऊंचाई के लिए अच्छी तरह से परिभाषित सीमाएं हैं।
.photo {
max-width: 150px;
min-width: 75px;
max-height: 150px;
min-height: 75px;
}
और कंटेनर में एक img होता है जिसे कंटेनर की ऊँचाई के पिक्सेल के बारे में पता होना चाहिए ताकि वह बहुत अधिक छवि प्राप्त करने से बच सके जो बहुत अधिक हो या फसली हो।
Img को पहले छोटी चौड़ाई को रेंडर करने की अनुमति देने के लिए 100% की अधिकतम-चौड़ाई को परिभाषित करना चाहिए और दूसरे को प्रतिशत आधारित होना चाहिए जो इसे पैरामीट्रिक बनाता है।
.photo > img {
max-width: 100%;
max-height: 150px;
-webkit-box-shadow: 0 0 13px 3px rgba(0,0,0,1);
-moz-box-shadow: 0 0 13px 3px rgba(0,0,0,1);
box-shadow: 0 0 13px 3px rgba(0,0,0,1);
}
ध्यान दें कि इसकी एक अच्छी छाया है;)
इस पहेली पर एक जीवंत उदाहरण का आनंद लें: http://jsfiddle.net/pligor/gx8qthqL/2/
मैं इसे एक आयताकार कंटेनर के लिए ऊंचाई और चौड़ाई तय करने के लिए उपयोग करता हूं, लेकिन विभिन्न आकारों की छवियों के साथ।
img {
max-width: 95%;
max-height: 15em;
width: auto !important;
}
पहलू अनुपात का सम्मान करने वाले आयाम पर ऑटो का उपयोग करना सबसे अच्छा है। यदि आप अन्य संपत्ति को ऑटो में सेट नहीं करते हैं, तो आजकल अधिकांश ब्राउज़र मान लेंगे कि आप पहलू राशन का सम्मान करना चाहते हैं, लेकिन उनमें से सभी (IE10 विंडोज़ फोन 8 पर नहीं है, उदाहरण के लिए)
width: 100%;
height: auto;
यह एक बहुत ही सीधा समाधान है, जिसे मैं कॉन्का के लिंक का अनुसरण करने और पृष्ठभूमि के आकार को देखने के बाद आया था। यह छवि को ऊपर उठाता है और फिर इसे बाहरी कंटेनर w / o स्केलिंग में केंद्रित करता है।
<style>
#cropcontainer
{
width: 100%;
height: 100%;
background-size: 140%;
background-position: center;
background-repeat: no-repeat;
}
</style>
<div id="cropcontainer" style="background-image: url(yoururl); />
background-size: contain;
एक पृष्ठभूमि में छवि को फिट करने के लिए उपयोग कर सकते हैं ।
एक पुराने मुद्दे में कूदने के लिए नहीं, लेकिन ...
#container img {
max-width:100%;
height:auto !important;
}
भले ही यह उचित नहीं है क्योंकि आप ऊंचाई पर महत्वपूर्ण ओवरराइड का उपयोग करते हैं, यदि आप वर्डप्रेस जैसे सीएमएस का उपयोग कर रहे हैं जो आपके लिए ऊंचाई और चौड़ाई निर्धारित करता है, तो यह अच्छी तरह से काम करता है।
आजकल एक का उपयोग कर सकते हैं vw
और vh
इकाइयों, जिनमें से 1% का प्रतिनिधित्व वी iewport है w idth और ज क्रमशः आठ।
https://css-tricks.com/fun-viewport-units/
इसलिए, उदाहरण के लिए:
img {
max-width: 100vw;
max-height: 100vh;
}
... छवि को यथासंभव व्यापक बनाएंगे, पहलू अनुपात बनाए रखेंगे, लेकिन व्यूपोर्ट के 100% से अधिक व्यापक या उच्च स्तर के बिना।
JQuery या तो का उपयोग करें, क्योंकि सीएसएस एक सामान्य गलत धारणा है (सरल डिजाइन लक्ष्यों के बारे में यहां अनगिनत सवाल और चर्चाएं दिखाती हैं)।
सीएसएस के साथ यह करना संभव नहीं है कि आप क्या चाहते हैं: छवि की चौड़ाई 100% होगी, लेकिन यदि इस चौड़ाई का परिणाम बहुत बड़ी है, तो अधिकतम-ऊंचाई लागू होगी - और निश्चित रूप से सही अनुपात होगा संरक्षित।
मुझे लगता है कि यह आपकी तलाश है, मैं इसे अपने लिए देख रहा था, लेकिन फिर मुझे याद आया कि फिर से मुझे कोड मिल गया।
background-repeat: repeat-x;
background-position: top;
background-size:auto;
background-attachment: fixed;
डिजिटल विकास अपने रास्ते पर है।