के बीच अंतर मुझे width
और flex-basis
के बीच व्यवहार में अंतर आया है, जिसे मैं What are the differences between flex-basis and width? द्वारा समझा नहीं सकता हूं।चौड़ाई और फ्लेक्स-बेस
.outer {
display: flex;
background: yellow;
padding: 10px;
}
.middle {
display: flex;
flex-shrink: 0;
background: red;
padding: 10px;
}
.inner {
flex-basis: 258px;
flex-shrink: 0;
display: flex;
flex-grow: 0;
background: green;
}
.inner2 {
width: 258px;
flex-shrink: 0;
display: flex;
flex-grow: 0;
background: green;
}
<div class="outer">
<div class="middle">
<div class="inner">
hello
</div>
</div>
</div>
<div class="outer">
<div class="middle">
<div class="inner2">
hello
</div>
</div>
</div>
Here उदाहरण समस्या मैं आ रही हैं दर्शाता हुआ है। मैं दोनों पंक्तियों को समान दिखने की उम्मीद कर रहा हूं, हालांकि, flex-basis
(पंक्ति 1) का उपयोग करते समय, फ्लेक्स कंटेनर (.middle
तत्व) अपने बच्चे की आंतरिक चौड़ाई (.inner
तत्व) को अनदेखा करता है और केवल टेक्स्ट को ध्यान में रखता है।
यह अंतर क्रोम, एफएफ और सफारी के नवीनतम संस्करणों में देखा जा सकता है (लेकिन आईई 11/एज में नहीं)।
स्पष्टीकरण: मैं नहीं पूछ रहा हूं कि आईई 11/एज किस तरह से व्यवहार करता है। इसका व्यवहार (इस मामले में) वास्तव में मेरे लिए तार्किक लगता है। मैं पूछ रहा हूं कि अन्य सभी ब्राउज़रों में अंतर क्यों है।
अद्यतन: एज 13 आईई 11 की तरह व्यवहार करता है।
यह एक दिलचस्प खोज है। [** spec **] के अनुसार (https: //drafts.csswg।संगठन/सीएसएस-फ्लेक्सबॉक्स/# फ्लेक्स-आधार-संपत्ति), इस उदाहरण में 'चौड़ाई' और 'फ्लेक्स-आधार' के बीच कोई प्रतिपादन अंतर नहीं होना चाहिए। मैं कहूंगा कि यह एक ब्राउज़र क्विर्क है। और भी दिलचस्प, आईई व्यवहार सही लगता है, जबकि क्रोम और एफएफ निशान से बाहर हैं। इस सवाल के सभी प्रकार और संदेह :-) –
यह मैं की याद दिलाता है [नेस्ट फ्लेक्स तत्वों नहीं बनाते हैं माता-पिता बढ़ने] को जन्म देती है (http://stackoverflow.com/q/36968138/1529630) – Oriol