2008-08-31 11 views
72

संरेखित करें मेरे पास एक निश्चित चौड़ाई और ऊंचाई के साथ एक कंटेनर div है, जिसमें ओवरफ्लो: छुपा हुआ है।सीएसएस - divs क्षैतिज

मुझे फ्लोट की एक क्षैतिज पंक्ति चाहिए: इस कंटेनर के भीतर बाएं divs। जिन बावों को बाएं तैरते हैं वे स्वाभाविक रूप से अपने माता-पिता की दाहिनी सीमा को पढ़ने के बाद नीचे 'रेखा' पर धक्का देंगे। यह तब भी होगा जब माता-पिता की ऊंचाई को इसकी अनुमति नहीं देनी चाहिए। !

[अधिकार: - हटाया छवि झोंपड़ी छवि है कि एक विज्ञापन द्वारा प्रतिस्थापित किया गया

मैं इसे कैसे देखने के लिए चाहते हैं

[गलत] [1]: यह है कि यह कैसे दिखता है ] [2] - हटाया छवि झोंपड़ी छवि है कि एक विज्ञापन द्वारा प्रतिस्थापित किया गया

नोट: प्रभाव मैं चाहता हूँ इनलाइन तत्वों का उपयोग कर & सफेद-अंतरिक्ष के द्वारा प्राप्त किया जा सकता है: कोई चादर (जो है मैं इसे कैसे किया दिखाए गए चित्र में)। हालांकि, यह मेरे लिए अच्छा नहीं है (कारणों को यहां व्याख्या करने के लिए बहुत लंबा कारण है), क्योंकि बच्चे के divs को ब्लॉक स्तर तत्वों को फ़्लोट करने की आवश्यकता है।

+5

आपकी छवि लिंक टूटा हुआ प्रतीत होता है। यदि आपके पास अभी भी मूल हैं, तो कृपया उन्हें stack.imgur पर पुनः अपलोड करें। धन्यवाद! –

उत्तर

84

आप कंटेनर में एक आंतरिक div डाल सकते हैं जो सभी फ़्लोटेड divs को पकड़ने के लिए पर्याप्त है।

#container { 
 
    background-color: red; 
 
    overflow: hidden; 
 
    width: 200px; 
 
} 
 

 
#inner { 
 
    overflow: hidden; 
 
    width: 2000px; 
 
} 
 

 
.child { 
 
    float: left; 
 
    background-color: blue; 
 
    width: 50px; 
 
    height: 50px; 
 
}
<div id="container"> 
 
    <div id="inner"> 
 
    <div class="child"></div> 
 
    <div class="child"></div> 
 
    <div class="child"></div> 
 
    </div> 
 
</div>

+0

फिर मैं बाहरी डिवी सेंटर कैसे बना सकता हूं? मैंने बाहरी div पर align = "center" जोड़ने का प्रयास किया, ऐसा लगता है कि काम नहीं करता है। – hakunami

+0

यह प्रतिशत चौड़ाई के लिए भी काम करता है। मेरे मामले में मैं 'चौड़ाई: 200%' के साथ एक कंटेनर div का उपयोग कर रहा हूं, और बाल तत्व प्रत्येक 'चौड़ाई: 50%;'। इसके बाद मैं 'ट्रांसफॉर्म: ट्रांसलेटएक्स (एन%) का उपयोग कर सकता हूं;' कंटेनर पर एक कैरोसेल प्रभाव का अनुकरण करने के लिए जब तक मेरे पास 'अतिप्रवाह: छुपा हुआ' वाला माता-पिता कंटेनर होता है; – evolross

3

इस के करीब लगता है कि आप क्या चाहते हैं:

#foo { 
 
    background: red; 
 
    max-height: 100px; 
 
    overflow-y: hidden; 
 
} 
 

 
.bar { 
 
    background: blue; 
 
    width: 100px; 
 
    height: 100px; 
 
    float: left; 
 
    margin: 1em; 
 
}
<div id="foo"> 
 
    <div class="bar"></div> 
 
    <div class="bar"></div> 
 
    <div class="bar"></div> 
 
    <div class="bar"></div> 
 
    <div class="bar"></div> 
 
    <div class="bar"></div> 
 
</div>

4

आप clip संपत्ति का उपयोग कर सकते हैं:

#container { 
    position: absolute; 
    clip: rect(0px,200px,100px,0px); 
    overflow: hidden; 
    background: red; 
} 

टिप्पणी position: absolute और overflow: hidden आदेश clip प्राप्त करने के लिए की जरूरत काम करने के लिए।

+3

क्लिप का ब्राउज़र समर्थन क्या है? – alex

+0

http://www.w3schools.com/cssref/pr_pos_clip.asp से: क्लिप प्रॉपर्टी सभी प्रमुख ब्राउज़रों में समर्थित है। नोट: मान "वारिस" आईई 7 और इससे पहले समर्थित नहीं है। आईई 8 की आवश्यकता है! DOCTYPE। आईई 9 "वारिस" का समर्थन करता है। – dsomnus

26

style="overflow:hidden" माता पिता div के लिए और style="float: left" सब बच्चे divs के लिए IE7 और नीचे की तरह पुराने ब्राउज़र के लिए क्षैतिज divs संरेखित बनाने के लिए महत्वपूर्ण हैं।

आधुनिक ब्राउज़रों के लिए, आप सभी बच्चे divs के लिए style="display: table-cell" का उपयोग कर सकते हैं और यह क्षैतिज रूप से ठीक से प्रस्तुत करेगा।

1

उन्हें फ़्लोट करें। क्रोम में, कम से कम, आपको LucaM के उदाहरण में, एक रैपर, id="container" रखने की आवश्यकता नहीं है।

2

फ़्लोट: बाएं, डिस्प्ले: इनलाइन-ब्लॉक दोनों कंटेनर की चौड़ाई से अधिक होने पर तत्व क्षैतिज रूप से संरेखित करने में विफल हो जाएंगे।

यह ध्यान रखें कि कंटेनर अगर तत्वों चाहिए क्षैतिज प्रदर्शित लपेट नहीं करना चाहिए महत्वपूर्ण है: white-space: nowrap

1

अब आप सीएसएस flexbox का उपयोग क्षैतिज और खड़ी divs संरेखित करने के लिए कर सकते हैं अगर आप की जरूरत है।सामान्य सूत्र इस

parent-div { 
    display:flex; 
    flex-wrap: wrap; 
    justify-content: center ; /* for horizontal aligning of child divs */ 
    align-items : center ; /* for vertical aligning */ 
    } 
child-div { 
    width: /* yoursize for each div */ ; 
}