जवाबों:
निम्नलिखित संपत्ति जोड़ें:
.c{
...
overflow: hidden;
}
यह कंटेनर को इसके भीतर सभी तत्वों की ऊंचाई का सम्मान करने के लिए मजबूर करेगा, चाहे अस्थायी तत्वों की परवाह किए बिना।
http://jsfiddle.net/gtdfY/3/
हाल ही में, मैं एक ऐसी परियोजना पर काम कर रहा था जिसमें इस ट्रिक की आवश्यकता थी, लेकिन अतिप्रवाह को दिखाने की अनुमति देने की आवश्यकता थी, इसलिए इसके बजाय, आप अपने फ़्लोट्स को साफ़ करने के लिए एक छद्म तत्व का उपयोग कर सकते हैं, प्रभावी रूप से सभी तत्वों पर अतिप्रवाह की अनुमति देते हुए समान प्रभाव प्राप्त कर सकते हैं।
.c:after{
clear: both;
content: "";
display: block;
}
आप बच्चों को तैर रहे हैं जिसका मतलब है कि वे कंटेनर के सामने "फ्लोट" कर रहे हैं। सही ऊंचाई लेने के लिए, आपको फ्लोट को "स्पष्ट" करना होगा
डिव स्टाइल = "स्पष्ट: दोनों" फ्लोटिंग को साफ करता है जो कंटेनर को सही ऊंचाई देता है। फ़्लोट्स के बारे में अधिक जानकारी के लिए http://css.maxdesign.com.au/floatutorial/clear.htm देखें ।
जैसे।
<div class="c">
<div class="l">
</div>
<div class="m">
World
</div>
<div style="clear: both" />
</div>
सबसे अच्छा और सबसे बुलेटप्रूफ समाधान कंटेनर में छद्म संयोजन ::before
और जोड़ना है ::after
। इसलिए यदि आपके पास उदाहरण के लिए एक सूची है जैसे:
<ul class="clearfix">
<li></li>
<li></li>
<li></li>
</ul>
और सूची में हर तत्व के पास float:left
संपत्ति है, तो आपको अपने सीएसएस में जोड़ना चाहिए:
.clearfix::after, .clearfix::before {
content: '';
clear: both;
display: table;
}
या आप display:inline-block;
संपत्ति का प्रयास कर सकते हैं, तो आपको किसी भी उपसर्ग को जोड़ने की आवश्यकता नहीं है।