2016-06-23 7 views
6

मैं एक पैरेंट div चाहता हूं जिसमें दो 50% चौड़ाई वाले बच्चे divs हैं जो सामग्री के साथ आकार बदलते हैं।सफेद-अंतरिक्ष वाले दो 50% divs: एक फ्लेक्स कंटेनर के अंदर अब्रैप तत्व

उनमें से एक h3white-space:nowrap; के साथ है और इससे div 50% से बढ़ने का कारण बनता है।

मैं div को min-width:0; का उपयोग करके 50% चौड़ाई पर लौटने के लिए मजबूर कर सकता हूं लेकिन अब h3 ओवरफ़्लो हो सकता है।

तो मुझे या तो बच्चे के divs पर एक अलग चौड़ाई या उनमें से एक के अंदर h3 से एक ओवरफ्लो मिलता है।

क्या white-space:nowrap; के अंदर तत्वों के साथ भी उन्हें 50% चौड़ाई बनाना संभव है? समस्या यहाँ से बाहर

की जांच: http://codepen.io/anon/pen/VjPwLm?editors=1100

#parent { 
 
    background: whitesmoke; 
 
    display: inline-flex; 
 
} 
 
#left { 
 
    background: rgba(10, 200, 250, 0.5); 
 
    flex-basis: 0; 
 
    flex-grow: 1; 
 
} 
 
#right { 
 
    background: rgba(250, 200, 10, 0.5); 
 
    flex-basis: 0; 
 
    flex-grow: 1; 
 
    /*min-width:0;*/ 
 
    /* Turn this on to see the h3 overflow */ 
 
} 
 
h3 { 
 
    white-space: nowrap; 
 
}
<div id="parent"> 
 
    <div id="left">Captain Deadpool</div> 
 
    <div id="right"> 
 
    <h3>Very long title that does not entirelly fit into the div</h3> 
 
    </div> 
 
</div>

उत्तर

5

अगर मैं सही ढंग से समझ, तुम छोड़ दिया फ्लेक्स आइटम लंबे शीर्षक के रूप में के रूप में व्यापक होना चाहता हूँ।

उसके बाद, आप कर सकते हैं: दोनों फ्लेक्स वस्तुओं पर

  • उपयोग min-width: 100% उन्हें के रूप में व्यापक बनाने के लिए उनके ग्रंथों के संयोजन के रूप में। फिर, वे समान रूप से व्यापक होंगे।

  • लेकिन वे बहुत व्यापक हैं, क्योंकि पहले फ्लेक्स आइटम का पाठ शामिल है। इसे अनदेखा करने के लिए width: 0 का उपयोग करें।

#parent { 
 
    background: whitesmoke; 
 
    display: inline-flex; 
 
} 
 
#left, #right { 
 
    min-width: 100%; 
 
} 
 
#left { 
 
    background: rgba(10,200,250,0.5); 
 
    width: 0; 
 
} 
 
#right { 
 
    background: rgba(250,200,10,0.5); 
 
    white-space: nowrap; 
 
}
<div id="parent"> 
 
    <div id="left">Captain Deadpool</div> 
 
    <div id="right"><h3>Very long title that does not entirelly fit into the div</h3></div> 
 
</div>

+0

स्मार्ट। बाएं फ्लेक्स आइटम पर 'चौड़ाई: 0;' का उपयोग करने का दुष्प्रभाव यह है कि फ्लेक्स कंटेनर के पृष्ठभूमि रंग और सीमा में अब इसकी 50% सही चौड़ाई है। क्या इसके लिए सही करने का कोई तरीका है? –

+0

@ अमोगुई अच्छा बिंदु। मुझे लगता है कि आप फ्लेक्स आइटम पर 'न्यूनतम चौड़ाई: 50% 'का उपयोग कर सकते हैं,' चौड़ाई: 200%' फ्लेक्स कंटेनर पर, और इसे एक इनलाइन-स्तर कंटेनर के अंदर लपेटें। [डेमो] (https://jsfiddle.net/610o1whg/)। लेकिन अब फ्लेक्स कंटेनर रैपर ओवरफ्लो करेगा। मैं अतिप्रवाह से छुटकारा पाने के लिए किसी भी तरह से नहीं सोच सकता। – Oriol

+0

@ अमोगुई मैंने इसे मार्जिन-दाएं से किया है। लेकिन जब स्क्रीन बहुत संकीर्ण होती है तो यह टूट जाती है, क्योंकि इसे डिफ़ॉल्ट फिट-सामग्री की बजाय अधिकतम सामग्री का उपयोग करके आकार दिया जाना चाहिए। लेकिन सभी ब्राउज़र 'चौड़ाई: अधिकतम सामग्री' का समर्थन नहीं करते हैं। [डेमो] (https://jsfiddle.net/610o1whg/1/) – Oriol

0

अगर मैं मुद्दे को समझने के लिए ठीक से, आप 2 divs maintian करने के लिए इतना है कि वे एक 50% चौड़ाई चाहते हैं। पैरेंट div को 100% चौड़ाई रखने के लिए सेट करें और फिर # राइट और # बाएं मिनट-चौड़ाई निर्धारित करें: 50%; एच 3 में जोड़ें ताकि अतिप्रवाह छिपा हुआ हो।

#parent { 
 
    background: whitesmoke; 
 
    display: inline-flex; 
 
} 
 
#left { 
 
    background: rgba(10, 200, 250, 0.5); 
 
    flex-basis: 0; 
 
    flex-grow: 1; 
 
    min-width: 100%; 
 
} 
 
#right { 
 
    background: rgba(250, 200, 10, 0.5); 
 
    flex-basis: 0; 
 
    flex-grow: 1; 
 
    min-width: 100%; 
 
} 
 
h3 { 
 
    white-space: nowrap; 
 
}
<div id="parent"> 
 
    <div id="left">Captain Deadpool</div> 
 
    <div id="right"> 
 
    <h3>Very long title that does not entirelly fit into the div</h3> 
 
    </div> 
 
</div>

+1

मैं चाहता हूं कि माता-पिता और बच्चे divs बहने की बजाए अपनी सामग्री के साथ आकार बदलना चाहते हैं। असल में मैं चाहता हूं कि मूल div को सबसे बड़ा बच्चा div की चौड़ाई दो गुना हो। –

+0

यह बहुत महत्वपूर्ण नहीं है क्योंकि मैं छोटी स्क्रीन पर व्यवहार को दोबारा सुधारने के लिए मीडिया प्रश्नों का उपयोग कर सकता हूं, लेकिन आदर्श रूप से वे फ़्लोटिंग तत्वों की तरह ढेर होंगे। –

संबंधित मुद्दे