मैं इस लेआउट बनाना चाहते रूप में एक ही चौड़ाईप्रत्येक आइटम व्यापक तत्व
जब कंटेनर व्यापक आइटम से छोटे है, हम Multilines में सामग्री लपेट कर सकते हैं
जावास्क्रिप्ट के साथ यह बहुत आसान है, उदाहरण https://jsfiddle.net/oucxsep4/ उदाहरण है।
var choices = document.querySelectorAll('li');
var maxWidth = 0;
// read
for (i = 0; i < choices.length; ++i) {
maxWidth = Math.max(maxWidth, choices[i].offsetWidth)
};
// write
for (i = 0; i < choices.length; ++i) {
choices[i].style.width = maxWidth + "px";
};
ul{
margin: 0;
padding: 0;
list-style: none;
}
li{
background: red;
float: left;
margin: 5px;
}
<ul>
<li>first choice</li>
<li>choice</li>
<li>This is the wider choice</li>
<li>other choice</li>
</ul>
यह जावास्क्रिप्ट, केवल सीएसएस का उपयोग किए बिना यह करने के लिए संभव है? मैंने सफलता के बिना flexbox
के साथ प्रयास किया है।
flexbox कोई ग्रिड धारणा है। विभिन्न फ्लेक्स लाइनों पर आइटम स्वतंत्र रूप से व्यवहार करते हैं, इसलिए मुझे नहीं लगता कि आप इसे फ्लेक्सबॉक्स के साथ प्राप्त कर सकते हैं। – Oriol
क्या यह आपके प्रश्न का उत्तर देने वाला एक डुप्लिकेट है? https://stackoverflow.com/questions/42656183/how-to-set-flex-items-to-equal-width-according-to-the-item-with-the-longest-cont/42659167 –