मेरे पास यह सरल HTML संरचना है:
<div id="mainbody">
<div id="main">
...
</div>
<div id="left">
...
</div>
</div>
<div id="footer">
...
</div>
Div "mainbody" की स्थिति है: रिश्तेदार। Div "left" पृष्ठ के बाईं ओर और गतिशील ऊंचाई पर पूर्ण स्थिति है। Div "मुख्य" div "बाएं" के दाईं ओर बाईं ओर तैरता है।
सीएसएस:
#mainbody {
position:relative;
}
#left {
position:absolute;
width:250px;
}
#main {
float: left;
margin-left: 260px;
width:80%;
}
समस्या: div "left" की ऊंचाई को अनदेखा किया जाता है और div "footer" शुरू होता है जहां div "main" समाप्त होता है, भले ही div "left" div "main" से बड़ी ऊंचाई हो।
उत्तर:
जवाब के लिए 3 № 1आप जो खोज रहे हैं वह एक है clearfix ताकि आपके तत्व ठीक से लोड हो जाएंगे। देख लिंक एसओ सवाल "कौन सा तरीका" clearfix "सबसे अच्छा है?" कई संभावित clearfixes के लिए।
कारण क्यों है footer
तत्व स्वयं के बगल में स्थित है main
तत्व इसलिए है क्योंकि पूरी तरह से स्थित तत्वपेज प्रवाह से हटा दिए जाते हैं। नतीजतन, बाद के तत्व पूरी तरह से तैनात तत्व का इलाज करते हैं जैसे कि यह पहले स्थान पर नहीं था। एक स्पष्टफिक्स के साथ, यह समस्या हल हो गई है।
जवाब के लिए 2 № 2
यदि आप निम्नलिखित तत्वों को प्रभावित नहीं करना चाहते हैं तो आपको फ़्लोट किए गए तत्वों के बाद एक स्पष्ट जोड़ना होगा।
इसे दो तरीकों से हासिल किया जा सकता है:
सीएसएस स्पष्ट जोड़ें: दोनों या स्पष्ट: निम्न तत्व का अधिकार। (जैसे कि div # left के बाद या #footer पर।
अतिप्रवाह जोड़ें: ऑटो से div # mainbody
बीटीडब्ल्यू अगर आप अधिक विशिष्ट या सटीक उत्तर चाहते हैं, तो मेरा सुझाव है कि आप अपने एचटीएमएल और सीएसएस दोनों को शामिल करें।