2013-07-19 12 views
8

तो मेरे पास एक div के अंदर तीन divs हैं।अभिभावक div की चौड़ाई को भरने के लिए बच्चे divs को विस्तारित करें

<div class="parent"> 
<div class="child> Text</div> 
<div class="child">Text</div> 
<div class="child">Text</div> 
</div> 

मैं चाहता हूं कि बच्चे माता-पिता की चौड़ाई को भरने के लिए div (बच्चों की संयुक्त चौड़ाई माता-पिता होना चाहिए)। हालांकि, यह नहीं हो रहा है, मैं कम गिर रहा हूँ। मुझे लगता है कि ऐसा इसलिए है क्योंकि बच्चे divs उनकी सामग्री के आधार पर चौड़ाई निर्धारित कर रहे हैं।

मैं जो चाहता हूं उसे कैसे प्राप्त करूं?

CSS-

.child { 
    background: white; 
    color: #a7a9ac; 
    cursor: pointer; 
    font-size: 15px; 
    border-right: 1px; 
    border-top: 0; 
    border-bottom: 0; 
    border-left: 0; 
    border-style: solid; 
    border-color: @faded-grey; 
    padding-right: 10px; 
    margin: 0 auto; 
    height: 100%; 
} 

.parent { 
    border-top: 1px; 
    border-left: 0; 
    border-bottom: 1; 
    border-style: solid; 
    border-color: @faded-grey; 
    border-right: 0; 
    width: 100%; 
    margin-right: 0px; 
    height: 80px; 

} 
+0

आप सीएसएस है कि आप प्रयोग कर रहे हैं पोस्ट कर सकते हैं? – cr0atIAN

+0

कई तरीके हैं, लेकिन यह आप जो चाहते हैं उस पर निर्भर करता है। सामग्री के चौड़ाई निर्धारित करने के बाद, क्या आप _last_ बाल div को किसी भी शेष स्थान को भरने के लिए चाहते हैं? या आप चाहते हैं कि वे समान रूप से दूरी पर हों, _i.e._ 'चौड़ाई: 33%' के माध्यम से? –

+0

सेट सीएसएस, चौड़ाई की कोशिश की: 33%, लेकिन यह divs को एक दूसरे से ऊपर रखता है – praks5432

उत्तर

8

तुम्हें पता है वहाँ हमेशा तीन बच्चों होगा, तो आप बस का उपयोग कर सकते हैं:

.parent > .child { 
    float: left; 
    width: 33%; 
} 

.parent { 
    overflow: auto; /*or whatever float wrapping technique you want to use*/ 
} 

यदि आप देखते हैं कि कितने बच्चों को पता नहीं है, आप की आवश्यकता होगी सीएसएस टेबल, फ्लेक्सबॉक्स का उपयोग करें, या शायद टेक्स्ट-एलाइन के साथ इनलाइन-ब्लॉकों को गठबंधन करें: उचित ठहराना।

8

आप .child सीएसएस नियम के इन तीन गुणों को जोड़ सकते हैं:

width:33%; 
float:left;  
box-sizing: border-box; 

अंतिम पंक्ति यह भी जब आप बक्से के लिए सीमाओं, गद्दी और मार्जिन जोड़ने के लिए काम करेंगे यकीन है कि बनाता है।

ONLINE DEMO

पी.एस.: सीधे संबंधित नहीं है, लेकिन वहाँ भी माता-पिता के लिए सीमा-नीचे, ऊपर बेला में सुधार में कोई त्रुटि है। आप गैर 0 मान का उपयोग जब आप इकाई निर्दिष्ट करने की आवश्यकता:

border-bottom:1px; 
+0

'बॉक्स-साइजिंग: सीमा-बॉक्स' जादू है! वास्तव में बहुत बहुत धन्यवाद। –

+1

बहुत बढ़िया सॉस! अन्य उत्तरों के सम्मान के साथ, मुझे लगता है कि यह सबसे अच्छा जवाब है। – Phil

+0

मध्यम चौड़ाई 34% बनाएं, अन्यथा आप केवल 99% कंटेनर भरें। – Sami

6

मैं उन्हें पूरी तरह से प्रतिक्रिया देने के लिए के लिए तत्वों की संख्या में एक विचरण को समायोजित करने के लिए अपने समाधान के लिए की जरूरत है।

मुझे इस के लिए एक दिलचस्प समाधान मिला। यह अनिवार्य रूप से एक टेबल की तरह प्रदर्शित करता है। प्रत्येक तत्व शेयरों उपलब्ध चौड़ाई, और यह भी छवियों के लिए काम करता है बहुत अच्छी तरह से: http://jsfiddle.net/8Qa72/6/

.table { 
    display: table; 
    width: 400px; 
} 

.table .row { 
    display: table-row; 
} 

.table .row .cell { 
    display: table-cell; 
    padding: 5px; 
} 

.table .row .cell .contents { 
    background: #444; 
    width: 100%; 
    height: 75px; 
} 
+1

एक और दिलचस्प समाधान 'डिस्प्ले: इनलाइन-ब्लॉक' का उपयोग करने का प्रयास करना है, यह कभी-कभी जीवन बचाता है ;-) –

+0

कैसे? यह बच्चों के बीच माता-पिता की उपलब्ध चौड़ाई को समान रूप से विभाजित नहीं करता है। क्या आप मुझे जेएसएफडल में दिखा सकते हैं? –

+0

आप सही हैं, आपको प्रत्येक बच्चे के लिए पैरेंट div का प्रतिशत निर्दिष्ट करना होगा यदि आप कुछ चाहते हैं तो मैंने "गतिशील" दृष्टिकोण और "निश्चित" दृष्टिकोण http://jsfiddle.net/dBeNv/40/ –

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