2011-03-17 6 views
9
में सापेक्ष

मैं सभी ब्राउज़रों पर डिबगिंग नहीं है, जबकि अपनी साइट को डिजाइन करने के कार्डिनल गलती की है। फ़ायरफ़ॉक्स (3.6.10) और आईई 8 में फॉर्म तत्व ठीक दिखते हैं लेकिन क्रोम (10) में, केवल स्थिति: पूर्ण तत्व दिखाई देते हैं।स्थिति: निरपेक्ष भीतर स्थिति: क्रोम

मैं एक रूप एक बिना क्रम वाली सूची से बना है। सूची आइटम स्थिति के साथ स्थापित हैं: रिश्तेदार। इसमें एक बाएं फ़्लोटिंग लेबल, दाएं फ़्लोटिंग फ़ील्ड और संभावित रूप से एक स्थिति है: पूर्ण विजेट।

HTML:

<form><ul> 
    <li> 
     <label>Name</label> 
     <input type="text" /> 
     <a id="nameGenerator" class="widget"></a> 
    </li> 
</ul></form> 

सीएसएस:

form ul li{ 
    margin: 5px; 
    clear: both; 
    position:relative; 
} 
form label{ 
    float:left; 
    margin-top: 0px; 
    margin-bottom: 0px; 
} 
form input{ 
    float:right; 
    margin-top: 0px; 
    margin-bottom: 0px; 
} 
form .widget{ 
    position: absolute; 
    top: 0; 
    right: 0; 
    z-index: 99; 
} 

मैं स्थिति को निकाल कर इस "ठीक" कर सकते हैं: रिश्तेदार लेकिन वह अस्वीकार्य है। क्या वांछित परिणाम देने के लिए मैं कुछ भी कर सकता हूं?

+0

और जो वांछित परिणाम कर रहे हैं? शायद स्थापित और उदाहरण? – easwee

+0

@Myles, यह अस्वीकार्य है क्योंकि यह सब पूरी तरह से स्थिति तत्वों स्क्रीन के ऊपर से चिपक, उनके संबंधित सूची आइटम में नहीं रह कारण बनता है। –

+0

@ शैलियों ग्रे - स्थिति: स्थैतिक डिफ़ॉल्ट स्थिति है - रिश्तेदार नहीं। उसे ली के रिश्तेदार होने की जरूरत है क्योंकि प्रत्येक को विजेट के लिए अपने माता-पिता होने चाहिए, अन्यथा यह शरीर के सापेक्ष स्थित नहीं है। – easwee

उत्तर

11

अपने सीएसएस करने के लिए इस जोड़ें:

form ul li{ 
    overflow:auto; 
} 

http://jsfiddle.net/cTTVs/1/

+2

क्या है .... धन्यवाद! लेकिन आकाश नाम में यह कैसे काम करता है? यह ठीक दिखता है, मैं समझ नहीं पा रहा हूं क्यों। –

+3

क्योंकि चल और पूरी तरह से तैनात तत्वों आसपास के तत्व प्राकृतिक रूप से बहने तत्वों के खाली हैं। केवल नियमित तत्व सामग्री को फिट करने के लिए आसपास के खिंचाव को बनाते हैं, यह फ़्लोटिंग के साथ एक ज्ञात 'मुद्दा' (या वास्तव में, सामान्य व्यवहार) है। एक और समाधान प्रत्येक सूची आइटम के अंदर एक div को 'स्पष्ट: दोनों' के साथ जोड़ना होगा –

+0

अच्छा धन्यवाद, आप अनिवार्य रूप से कठिन रॉक करते हैं। मैं अपने वेब ऐप के सभी 20 पृष्ठों को फिर से शुरू करने के बारे में चिंतित था ... जिसमें पूरी तरह से फॉर्म शामिल हैं। –

7

बस form ul li नियमों के overflow:hidden जोड़ें। यह जहां स्क्रॉलबार तत्व (संभवतः इस तरह अपने 'widgets' के रूप में) में दिखाई दे सकता कई स्थितियों में better than overflow:auto when clearing floats काम करता है।

अद्यतन:

मैं एक विचार है कि अपने विजेट इस तरह के एक सुझाव पेटी या दिनांक पिकर के रूप में चीजों की एक सूची दिखाने के लिए की जरूरत है, तो आप बेहतर overflow मानों का उपयोग नहीं अपने तैरता स्पष्ट करने के लिए किया जाएगा था। एक विकल्प the old clearfix hack है जो अधिक उपयुक्त हो सकता है। Check out this demo जिसमें एक गलत विजेट है जो विभिन्न समाधान दिखा रहा है और कैसे एक लंबा विजेट उनके साथ काम कर सकता है।

डेमो: jsfiddle.net/Marcel/ghaHz

+0

अद्यतन के साथ यह उत्तर मेरा से कहीं बेहतर है। +1 –

0

overflow:visible जोड़ें और यह आपकी समस्या का समाधान होगा।