2010-02-23 11 views
6

मैं आज सीएसएस पोजिशनिंग मोड के बारे में सोच रहा था और महसूस किया कि मैंने कभी भी बच्चे तत्वों पर काम करने के अलावा position:relative का उपयोग नहीं किया है।स्थिति क्या है: इसके लिए सापेक्ष उपयोगी है?

मैं "डिजाइनर" से अधिक "डेवलपर" हूं, लेकिन मैंने पिछले कुछ वर्षों में काफी सीएसएस-आधारित लेआउट किए हैं। मैंने टेबल, फ्लोट, मार्जिन (पॉजिटिव और नकारात्मक), स्थिति: पूर्ण, और यहां तक ​​कि स्थिति भी तय की है, लेकिन मुझे नहीं लगता कि मुझे कभी ऐसा मौका मिला है जहां मैंने स्थिति का उपयोग किया है: असल में एक स्थिति को रखने के लिए रिश्तेदार तत्व।

क्या कुछ महान सीएसएस-गुरु तकनीक है जो स्थिति पर निर्भर करती है: रिश्तेदार (और असली दुनिया के डिजाइन में उपयोग किया जाता है)? क्या मैं याद कर रहा हूँ?

+0

ठीक है, आपने इसे नाम दिया: ऑफसेट 'स्थिति: पूर्ण'। जो वास्तव में उपयोगी है। – zneak

+0

सहमत हैं, लेकिन उस उपयोगीता के पास स्थिति की वास्तविक कार्यक्षमता के साथ वास्तव में कुछ भी नहीं है: सापेक्ष। इसलिए सवाल है। :-P –

+0

ठीक है, यह मानकों में स्पष्ट रूप से परिभाषित किया गया है, और यह करने का एकमात्र विनाशकारी तरीका है, इसलिए मैं इसे उपयोगी और वास्तविक कार्यक्षमता कहता हूं। :) – zneak

उत्तर

6

यह उपयोगी है अगर आप किसी तत्व को ऑफसेट करना चाहते हैं बिना मार्जिन के आसपास फ़्यूज़िंग और अन्य तत्वों के इसके परिणामों के बिना। आइए मान लें कि आप जानबूझकर एक कंटेनर के किनारे से एक छवि पोक करना चाहते हैं और (लगभग) इसके बगल में एक कंटेनर में कुछ सामग्री के साथ ओवरलैप करना चाहते हैं।

------------- ----- 
|   | | | 
| X -------| Y | 
|  | a || | 
|  -------| | 
------------- ----- 

कंटेनर aX की सामान्य पाठ प्रवाह का हिस्सा है और आप इसे उस तरह से, तो आप सिर्फ यह एक स्वच्छ प्रभाव के रूप में एक सा टीम से बाहर poking चाहते रखना चाहते हैं। यदि आप मार्जिन के साथ ऐसा करते हैं, तो यह वास्तव में गन्दा हो सकता है और आपकी कुछ अन्य सामग्री को फिर से भर सकता है।
position: relative; left: 10px; का उपयोग करके आप दुष्प्रभावों के बिना आसानी से उस प्रभाव को प्राप्त कर सकते हैं।

1

मैं इसे एक बार से अधिक हैडर छवियों तरह बातें प्रदर्शित करने के लिए उपयोग किया है, कुछ की तरह:

<div id="header"> 
    <div id="logo"></div> 
<div> 

सीएसएस:

#header { width: 1024px; margin: 0 auto; background: url(string.jpg); } 
#logo { position: relative; left: 40px; background: url(logo.jpg); } 

इस मामले में हैडर एक बड़ी पट्टी है सभी तरह एक पृष्ठभूमि छवि के रूप में, लोगो पट्टी में बैठता है बस थोड़ा ऑफसेट। कुछ मामलों में पैडिंग/मार्जिन से थोड़ा सा सामान थोड़ा सा स्थानांतरित करने के लिए मुझे लगता है, शायद यह सिर्फ राय है।

+0

मुझे "सरल" के बारे में निश्चित नहीं है, क्योंकि इसे एक के बजाय 2 सीएसएस गुणों की आवश्यकता होती है ('मार्जिन-बाएं: 40 पीएक्स' के सापेक्ष)। यदि स्थिति का उपयोग करने का कोई अन्य परिणाम है: सापेक्ष तो यह विचार करने लायक हो सकता है ... लेकिन अब तक वे मेरे समान दिखते हैं। –

+1

@ क्रैग - एक और मामला यह है कि मेरे पास लोगो की शैली के कारण पूरी साइट के लिए रैप विंडो को ऊपर रखा गया है, इसलिए div को 'left: -20px;' के रूप में सेट करना नकारात्मक मार्जिन से बहुत कम मुद्दों को दिया गया है, लेकिन जैसा कि मैंने कहा, शायद स्वाद का मामला ... मैं इसका उपयोग करता हूं शायद ही कभी मैं स्वीकार करता हूं, लेकिन यह कुछ समय में एक बार स्टाइलशीट में जाता है। –

+0

यह मेरे लिए एक महान उपयोग की तरह लगता है। –

1

मैं मुख्य रूप से इसका उपयोग करता हूं जब मैं अपने मूल तत्व से संबंधित कुछ पूर्ण तत्व को रखना चाहता हूं। उस स्थिति में मूल तत्व को position: relative पर सेट करने की आवश्यकता है। यही वह जगह है जहां यह है।

आगे मैं पृष्ठभूमि छवि के साथ ब्लॉक तत्वों में आईई 6/7 हैलेआउट/फ्लिकरिंग बग को ठीक करने के लिए यहां और वहां भी इसका उपयोग करता हूं।

6

मैंने अतीत में posotion: relative का उपयोग कंटेनर तत्व के लिए किया है, जिसमें इसके अंदर स्थित सभी तत्वों (एक केंद्रित तीन कॉलम लेआउट की तरह) हैं। उदाहरण के लिए:

alt text http://www.freeimagehosting.net/uploads/2573654d07.png

मैं कंटेनर किसी भी भरपाई नहीं देते, लेकिन स्थिति यह position: relative के साथ मुझे बिल्कुल कॉलम कंटेनर के सापेक्ष स्थित कर सकते हैं। यदि कंटेनर position: static पर सेट है, क्योंकि यह डिफ़ॉल्ट रूप से है, तो कॉलम पूरी तरह से ब्राउज़र व्यूपोर्ट के सापेक्ष स्थित होगा, कंटेनर नहीं।

+0

उत्कृष्ट आरेख ने मुझे तुरंत अपनी समस्या को देखने में मदद की। धन्यवाद। –

2

मैं position:relative; का उपयोग करता हूं ताकि सुपरस्क्रिप्ट वर्ण अभी भी vertical-align: top; से ऊपर चढ़ सकें लेकिन उन्हें मेरे अनुच्छेदों के अग्रणी से गड़बड़ करने की अनुमति नहीं देता है।

sup { 
    font-size: .7em; 
    vertical-align: top; 
    position: relative; 
    top: -.1em; 
} 
+0

मुझे लगा कि ऐसा करने के लिए एक टाइपोग्राफ़िकल कारण होगा। –

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