2017-02-11 35 views
6

के भीतर छवि सही ढंग से स्केल नहीं होती है, मैं कॉलम में दो छवियों को रखने के लिए फ्लेक्सबॉक्स का उपयोग करने की कोशिश कर रहा हूं। इस मामले में, div कंटेनर की चौड़ाई छवि की चौड़ाई से छोटी है। Div कंटेनर सही क्रोम में छवि फिट बैठता है, लेकिन यह आईई में नहीं है, और मुझे नहीं पता क्यों।आईई 11: फ्लेक्सबॉक्स

div.outer { 
 
    width: 400px; 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: space-around; 
 
} 
 

 
div.inner { 
 
    width: 100%; 
 
    border: 1px solid red; 
 
} 
 

 
img { 
 
    width: 100%; 
 
    height: auto; 
 
}
<div class="outer"> 
 
    <div class="inner"> 
 
    <img src="http://placehold.it/480x360"> 
 
    </div> 
 

 
    <div class="inner"> 
 
    <img src="http://placehold.it/480x360"> 
 
    </div> 
 
</div>

https://jsfiddle.net/Yifei/16cpckqk/

यह है कि मैं क्या IE 11 में मिल गया है है:

+0

मैं इस व्याख्या नहीं कर सकते, लेकिन आप हमेशा पर 100% की ऊंचाई सेट कर सकते हैं छवि और मैन्युअल रूप से flexbox की ऊंचाई को परिभाषित करें, अगर यह मदद करता है :) –

+2

किसी कारण से यह 'div.inner' पर 'flex: 0 0 auto'' (या केवल 'flex-shrink: 0') सेट करके तय किया जाता है। जो अजीब है क्योंकि div को कम करने के लिए आप घोषित कर रहे हैं कि इसे कम नहीं करना चाहिए। – GSerg

उत्तर

11

IE11 का प्रारंभिक मूल्य के साथ कुछ परेशानी है लगता है flex-shrink property। आप शून्य करने के लिए यह सेट करते हैं (इसे शुरू में 1 पर सेट है), यह काम करना चाहिए:

div.outer { 
 
    width: 400px; 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: space-around; 
 
} 
 
div.inner { 
 
    flex-shrink: 0; 
 
    width: 100%; 
 
    border: 1px solid red; 
 
} 
 
img { 
 
    width: 100%; 
 
    height: auto; 
 
}
<div class="outer"> 
 
    <div class="inner"> 
 
    <img src="http://placehold.it/480x360"> 
 
    </div> 
 

 
    <div class="inner"> 
 
    <img src="http://placehold.it/480x360"> 
 
    </div> 
 
</div>

+0

आप इसे 'फ्लेक्स-सिकंक: 0;' सेट करने की तरह ध्वनि बनाते हैं, उचित प्रारंभिक मान सुनिश्चित करने का सही तरीका है। लेकिन यहां तर्कसंगत रूप से सही मूल्य * है * '1' जैसा कि मैंने [उल्लेख किया है] (http://stackoverflow.com/questions/42173213/ie-11-image-doesnt-scale-down-correctly-within-flexbox#comment71511073_42173213) , भले ही '0' इसे ठीक करने के लिए होता है। – GSerg

+0

मैंने यह नहीं कहा कि यह सही तरीका है, मेरा जवाब समस्या के लिए एक संभावित कामकाज है। उत्तर देने पर मैंने आपकी टिप्पणी नहीं देखी ... श्रीमान – andreas