2013-04-30 5 views
14

मैं कुछ समय से सीएसएस लिख रहा हूं।सीएसएस रिश्तेदार + दाएं (या नीचे) लगभग कभी काम नहीं करते

मैंने देखा है कि

<div style="position: relative; right: 20%; bottom: 20%;">some text</div> 

कभी नहीं काम करता है!

सापेक्ष स्थिति बाएं और ऊपर निर्दिष्ट के साथ काम करेगी लेकिन सही/नीचे नहीं। क्यों?

इसके आस-पास एक त्वरित फिक्स इसके बजाय "पूर्ण" का उपयोग करना है और पिक्सल में दाएं/नीचे निर्दिष्ट करना है, लेकिन मुझे एक कारण चाहिए।

इसके अलावा, अगर मैं गलत हूं तो मुझे सही करें। चाहे बाहरी कंटेनर बिल्कुल या अपेक्षाकृत स्थित है, क्या यह उस कंटेनर की सीमाओं के लिए "सापेक्ष" स्थिति को रखने के लिए ज्यादा समझ में नहीं आता है या किसी कंटेनर के अंदर तत्वों को हमेशा "पूर्ण" रखा जाना चाहिए?

धन्यवाद।

+0

जब आप का कहना है कि इस सुविधा "काम नहीं करता है", तो आप वास्तव में क्या मतलब है? इसके लिए कई अलग-अलग अर्थ हैं। अन्य उपयोगकर्ताओं द्वारा आपकी समस्या को समझने में सहायता के लिए, सहायता के लिए कुछ कोड या एक [jsFiddle] (http://jsfiddle.net) जोड़ने का प्रयास करें। –

उत्तर

13

Absolute vs. Relative - Explaining CSS Positioning

सापेक्ष स्थिति से पूर्ण स्थिति के रूप में ही चार पोजीशनिंग गुण का उपयोग करता है। लेकिन ब्राउज़र दृश्य पोर्ट पर तत्व की स्थिति को आधार देने के बजाय, यह तब से शुरू होता है जब तत्व सामान्य प्रवाह में होता है।
+2

तो सही: 40 पीएक्स; मार्जिन-बाएं के समान ही काफी है: -40 पीएक्स; उस मामले में तब? यह सिर्फ विचित्र है ... –

+1

वहां अंतर, @TomAuger 'स्थिति' संपत्ति है जिसे उस परिवर्तन को प्रभावित करने के लिए _parent_ तत्व को असाइन किया जाना होगा। ** पुश ** बनाम ** खींचें ** के संदर्भ में इसके बारे में सोचें: 'दाएं: 40 पीएक्स;' का मतलब है कि तत्व माता-पिता को 'स्थिति: रिश्तेदार' की आवश्यकता होगी, और तत्व ** ** धक्का दिया जाएगा ** 40 पीएक्स सामान्य दाएं किनारे किनारे के बाईं ओर। हालांकि, यदि बॉक्स मॉडल ढह गया है तो यह इच्छित प्रदर्शन प्रतिपादन नहीं दे सकता है। इसके बजाए 'मार्जिन-बाएं: -40 पीएक्स;' ** बाएं बाउंडिंग एज से तत्व ** खींचता है और मूल तत्व अपनी डिफ़ॉल्ट 'स्थिति: स्थैतिक;' संपत्ति को बरकरार रख सकता है। – oomlaut

8

सापेक्ष स्थिति नीचे/सही मूल्यों के साथ काम करता है, न कि केवल जिस तरह से आप उम्मीद कर रहे थे:

http://cssdesk.com/RX24j

मार्जिन के रूप में रिश्तेदार तत्वों पर स्थिति मूल्यों के बारे में सोचो, कि आसपास के तत्वों बस ध्यान न दें। "मार्जिन" हमेशा सामान्य दस्तावेज़ प्रवाह में इसकी पिछली स्थिति के सापेक्ष तत्व को स्थानांतरित करेगा, लेकिन इसे एक ही समय में सामान्य प्रवाह से हटा दें।

जब सामान्य दस्तावेज़ प्रवाह में से, आसपास के तत्व कार्य करते हैं जैसे कि यह सामान्य प्रवाह में इसकी मूल स्थिति में था ... लेकिन ऐसा नहीं है। यही कारण है कि एक सापेक्ष तत्व अपने माता-पिता को ओवरलैप कर सकता है (जैसे रिला 1 में)।

1

क्या आपने इसे आजमाया?

<div style="position: relative; right: -20%; bottom: -20%;">some text</div> 

या बल्कि

<div style="position: relative; right: -80%; bottom: -80%;">some text</div> 
संबंधित मुद्दे