2012-11-29 11 views
6

जब मैं अपने रैपर को पूर्ण और दाएं स्थान पर रखता हूं तो खिड़की को कम करने पर कोई क्षैतिज स्क्रॉलबार ट्रिगर नहीं होता है।स्थिति पूर्ण अधिकार - कोई स्क्रॉलबार दृश्यमान

उदाहरण: http://jsfiddle.net/Ue6aN/

कोड:

<div id="wrapper"></div> 


#wrapper { 
width: 400px; 
height: 400px; 
position: absolute; 
right: 20px; 
top: 0px; 
border: 1px solid red; 
} 

अगर मैं स्विच सही: 20px; छोड़ने के लिए: 20 पीएक्स; यह काम कर रहा है, लेकिन अन्यथा नहीं। जावास्क्रिप्ट के बिना इसे ठीक करने का कोई विचार?

उत्तर

1

समस्या यह है कि #wrapper के बाद कोई सामग्री नहीं है। क्षैतिज स्क्रॉल प्राप्त करने के लिए दस्तावेज़ के बाएं किनारे पर सामग्री को एंकर किया जाना चाहिए जो व्यूपोर्ट को संकुचित होने पर छुपाया जाता है, या कहा कि सामग्री व्यूपोर्ट चौड़ाई से अधिक है। चूंकि #wrapper सही फ़्लोटिंग है, यह असंभव है क्योंकि इसमें कोई बाएं तरफ एंकर पॉइंट नहीं है। :after हालांकि यह काम करता है।

#wrapper { float:right ... } 

body:after { 
    clear:right; 
    content:' '; 
    display:block; 
    height:1px; 
    min-width:420px 
} 

सीएसएस ऊपर body की सामग्री है, जो #wrapper है बाद में एक रिक्ति कहते हैं। वह स्थान कम से कम #wrapper के बॉक्स मॉडल की चौड़ाई है, लेकिन इसमें कोई फ्लोट नहीं है, और व्यूपोर्ट के बाएं किनारे पर लगी हुई है। तो ... जैसे ही इसका दायां किनारा छुपा हुआ है, क्षैतिज स्क्रॉलिंग ट्रिगर हो जाती है; इस प्रकार भ्रम दे रहा है कि #wrapper स्क्रॉल ईवेंट का कारण बन रहा है।

बेला: http://jsfiddle.net/jg3nH/

1

फ्लोट अधिकार का उपयोग करना मेरे लिए अधिक तार्किक होगा लेकिन आपको पूर्ण स्थिति की आवश्यकता है जिसमें आप युक्त तत्व की चौड़ाई या न्यूनतम चौड़ाई निर्धारित कर सकते हैं।

body { 
    position: relative; 
    height: 400px; //needs to be at least 1px 
    width: 100%; 
    min-width: 422px; // the width you'd like to horizontal scrollbar to appear 
} 
+0

ध्यान रखें बच्चों का पूर्ण स्थिति (इस मामले में शरीर) माता-पिता आयामों के साथ काम करने के लिए, आप रिश्तेदार या पूर्ण की तरह कुछ करने के लिए शरीर की स्थिति को बदलने की जरूरत है। – chrisgonzalez

+0

अरे, धन्यवाद! दुर्भाग्य से यह काम नहीं किया। यदि आप बॉडी साइज सेट करते हैं और रैपर को पूरी तरह से सेट करते हैं, तो स्क्रॉलबार दिखाई देते हैं, लेकिन आप छिपे हुए क्षेत्र में स्क्रॉल नहीं कर सकते हैं। केवल फ्लोट दाएं स्क्रॉलबार को ट्रिगर नहीं करता है। लेकिन, फ्लोट दाएं के साथ संयुक्त शरीर की चौड़ाई चाल चल रही थी! यहां देखें: http://jsfiddle.net/Ue6aN/11/ क्या आप अपना उत्तर बदल सकते हैं, इसलिए मैं इसे स्वीकार कर सकता हूं :) – Lizzaran

+0

जो आप देख रहे हैं वह 'body # पर' div # wrapper 'पर नहीं है । – Dawson

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