2012-05-07 14 views
291

के सापेक्ष मेरे पास एक और div के अंदर दो divs हैं, और मैं एक बच्चे div को पैरेंट div के ऊपरी दाएं भाग में रखना चाहता हूं, और दूसरा बच्चा div को css का उपयोग करके पैरेंट div के नीचे ले जाना चाहता हूं। हां, मैं दो बच्चे divs के साथ पूर्ण स्थिति का उपयोग करना चाहता हूं, लेकिन पेज के बजाए पैरेंट div के सापेक्ष उन्हें स्थिति में रखना चाहता हूं। मैं यह कैसे कर सकता हूँ?पूर्ण स्थिति लेकिन माता-पिता

नमूना HTML:

<div id="father"> 
    <div id="son1"></div> 
    <div id="son2"></div> 
</div> 
+0

आप son1 पिता के ऊपरी दाएं कोने में रहना चाहता हूँ लेकिन जहां तल पर होना चाहिए son2 के तहत? नीचे बाएं, दाएं, या केंद्र? – j08691

+0

इस मामले में, आपको स्थिति सेट करने की आवश्यकता होगी: मूल तत्व से संबंधित, और स्थिति: बच्चों के तत्वों के लिए पूर्ण। पहले बच्चे तत्व पर, आपको मूल तत्व के ऊपरी दाएं भाग पर स्थित करने के लिए शीर्ष: 0 और दाएं: 0 रखना चाहिए। दूसरे बच्चे पर, आपको पैरेंट तत्व के नीचे इसे स्थिति में रखने के लिए नीचे रखना चाहिए: 0। यहां एक महान लेख है https://kolosek.com/css-position-relative-vs-position-absolute सापेक्ष और पूर्ण स्थिति को विस्तार से समझाते हुए। –

उत्तर

541
#father { 
    position: relative; 
} 

#son1 { 
    position: absolute; 
    top: 0; 
} 

#son2 { 
    position: absolute; 
    bottom: 0; 
} 

यह काम करता है position: absolute "top, right, bottom, left खुद के संबंध में निकटतम पूर्वज जो position: absolute या position: relative है करने के लिए स्थिति का उपयोग जैसा ही कुछ है क्योंकि । "

तो हम #fatherposition: relative है बनाने के लिए, और बच्चों position: absolute है, तो top और bottom का उपयोग बच्चों स्थिति।

+0

बहुत बहुत धन्यवाद। क्या आप मुझे समझा सकते हैं कि यह कैसे काम करता है? – BlaShadow

+4

'# पिता {स्थिति: रिश्तेदार क्यों है; } 'आवश्यक है? – joshreesjones

+1

को उनके अंदर मौजूद लोगों के लिए "स्थिति नियम" बदलने की आवश्यकता है। – BlaShadow

22
div#father { 
    position: relative; 
} 
div#son1 { 
    position: absolute; 
    /* put your coords here */ 
} 
div#son2 { 
    position: absolute; 
    /* put your coords here */ 
} 
+0

क्या होगा यदि आपको बच्चे के साथ माता-पिता का आकार बदलने की आवश्यकता है? – FrenkyB

5

यदि आप माता-पिता को कोई स्थिति नहीं देते हैं तो डिफ़ॉल्ट रूप से static लेता है। आपको लगता है कि अंतर को समझने चाहते हैं इस उदाहरण

उदाहरण 1 ::

http://jsfiddle.net/Cr9KB/1/

#mainall 
{ 

    background-color:red; 
    height:150px; 
    overflow:scroll 
} 

यहाँ माता पिता वर्ग का उल्लेख नहीं स्थिति इतनी तत्व शरीर के अनुसार रखा गया है है।

उदाहरण 2 ::

http://jsfiddle.net/Cr9KB/2/

#mainall 
{ 
    position:relative; 
    background-color:red; 
    height:150px; 
    overflow:scroll 
} 

इस उदाहरण माता-पिता में रिश्तेदार की स्थिति इसलिए तत्व रिश्तेदार माता पिता के अंदर पूर्ण तैनात कर रहे हैं है।

+0

और, यदि आपके पास #mainall {height: 150px} नहीं है ...? मेरा मतलब है, अगर मेनल गतिशील ऊंचाई है? –

+0

तो आपका फ़्लोटिंग तत्व उस स्थिति के सापेक्ष होगा जो मूल तत्व था जब पृष्ठ (और सीएसएस) लोड किया गया था। यदि आप पेज लोड के बाद इसे अपडेट करना चाहते हैं, तो जावास्क्रिप्ट का उपयोग करें - क्लाइंटएक्स और क्लाइंटवाई शुरू करने के लिए एक अच्छी जगह है –

2

बैठाना किसी स्थिति चाहता है एक बच्चे div सीधे एक माता पिता

#father { 
    position: relative; 
} 

#son1 { 
    position: absolute; 
    top: 100%; 
} 

कार्य डेमो Codepen

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