2013-06-25 13 views
47

में काम नहीं कर रहा है मैं अपने एचटीएमएल पेज स्क्रॉलिंग मुद्दे के लिए सीएसएस/जावास्क्रिप्ट समाधान की तलाश में हूं।ओवरफ्लो स्क्रॉल सीएसएस div

मैं तीन divs कि एक div, एक शीर्षक और एक आवरण div होते हैं,

मैं आवरण div में एक खड़ी स्क्रॉलबार की जरूरत है, ऊंचाई ऑटो या 100% सामग्री के आधार पर होना चाहिए।

हैडर समाधान हो गया होगा, और मैं समग्र स्क्रॉलबार तो मैं शरीर टैग में overflow:hidden दे दिया है नहीं करना चाहते,

मैं अपने आवरण div में खड़ी स्क्रॉलबार की जरूरत है। मैं इसे कैसे ठीक करूं?

एचटीएमएल

<div id="container"> 

    <div class="header"></div> 

    <div class="wrapper"> 
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus porta tortor sed metus. Nam pretium. Sed tempor. Integer ullamcorper, odio quis porttitor sagittis, nisl erat tincidunt massa, eu eleifend eros nibh sollicitudin est. Nulla dignissim. Mauris sollicitudin, arcu id sagittis placerat, tellus mauris egestas felis, eget interdum mi nibh vel lorem. Aliquam egestas hendrerit massa. Suspendisse sed nunc et lacus feugiat hendrerit. Nam cursus euismod augue. Aenean vehicula nisl eu quam luctus adipiscing. Nunc consequat justo pretium orci. Mauris hendrerit fermentum massa. Aenean consectetuer est ut arcu. Aliquam nisl massa, blandit at, accumsan sed, porta vel, metus. Duis fringilla quam ut eros.</p> 
     <!-- Lots more paragraphs--> 
    </div> 

</div> 

सीएसएस

body{ margin:0; padding:0; overflow:hidden; height:100%} 
#container { width:1000px; margin:0 auto;} 
.header { width:1000px; height:30px; background-color:#dadada;} 
.wrapper{ width:1000px; overflow:scroll; position:relative;} 

इस JS Fiddle

उत्तर

1

को देखें प्रयास करें एक खड़ी स्क्रॉलबार के लिए इस:

overflow-y:scroll; 
+2

अतिप्रवाह-y: पुस्तक भी काम नहीं कर रहा है। – user2493730

+0

लेकिन यदि आप केवल मैक पर ट्रैकपैड के साथ हैं, तो यह काम नहीं करेगा। –

11

यदि आप .wrapper कक्षा में ऊंचाई जोड़ते हैं तो आपकी स्क्रॉल काम कर रही है, बिना height स्क्रॉल काम नहीं कर रहा है।

इस http://jsfiddle.net/ZcrFr/3/

सीएसएस का प्रयास करें:

.wrapper { 
    position: relative; 
    overflow: scroll; 
    width: 1000px; 
    height: 800px; 
} 
+2

धन्यवाद, लेकिन मेरी वास्तविक आवश्यकता यह है कि मुझे कोई भी ऊंचाई 100% या ऑटो नहीं देनी चाहिए, सामग्री को ब्राउज़र विंडो के अनुसार लेना चाहिए, क्या आप सीएसएस/जावास्क्रिप में कोई अन्य समाधान कर सकते हैं? – user2493730

3

आप div ऊंचाई दे दी है नहीं किया। इसलिए जब अधिक सामग्री जोड़ दी जाती है तो यह स्वचालित रूप से फैल जाएगी। इसे एक फिक्स-ऊंचाई दें और स्क्रॉल बार दिखाए जाएंगे।

+1

धन्यवाद, लेकिन मेरी वास्तविक आवश्यकता यह है कि मुझे कोई भी ऊंचाई 100% या ऑटो नहीं देनी चाहिए, सामग्री को ब्राउजर विंडो के अनुसार लेना चाहिए, क्या आप सीएसएस/जावास्क्रिप में कोई अन्य समाधान कर सकते हैं? – user2493730

+1

इसे 100% की ऊंचाई दें। फिर आप अतिप्रवाह और खुद के लिए आवश्यकताओं को पूरा करते हैं। – Nick

3

मैं संपादित अपने: Fiddle

html, body{ margin:0; padding:0; overflow:hidden; height:100% } 
.header { margin: 0 auto; width:500px; height:30px; background-color:#dadada;} 
.wrapper{ margin: 0 auto; width:500px; overflow:scroll; height: 100%;} 

एचटीएमएल टैग एक 100% ऊंचाई देते हुए समाधान है। मैंने कंटेनर div भी हटा दिया। जब आपका लेआउट इस तरह रहता है तो आपको इसकी आवश्यकता नहीं होती है।

+0

धन्यवाद यह काम कर रहा है, लेकिन कोडर स्लाइडर अवधारणा का उपयोग कर रहा है जिसमें मुख्य कंटेनर div है, हेडर क्षेत्र में मेरे पास तीन div तय किए गए हैं, रैपर सामग्री क्षेत्र के अंदर केवल स्क्रॉलिंग होना चाहिए, आपने कहा कि कंटेनर को हटा दें तो मैं इस मुद्दे को किसी और को कैसे ठीक कर सकता हूं रास्ता पीएल? – user2493730

90

आप height सीएसएस संपत्ति खो रहे हैं।

इसे जोड़कर आप देखेंगे कि स्क्रॉल बार दिखाई देगा।

.wrapper{ 
    // width: 1000px; 
    width:600px; 
    overflow-y:scroll; 
    position:relative; 
    height: 300px; 
} 

JSFIDDLE

documentation से

:

overflow-y

अतिप्रवाह-y सीएसएस संपत्ति सामग्री क्लिप के लिए कि क्या, एक ब्लॉक की एक स्क्रॉल पट्टी, या प्रदर्शन अतिप्रवाह सामग्री प्रस्तुत करना निर्दिष्ट करता है -लेवल तत्व, जब यह ऊपर और नीचे किनारों पर बहती है।

+2

व्यूपोर्ट पर ऊंचाई को कैसे रोकें? मैं पिक्सल में हार्डकोड नहीं करना चाहता, क्योंकि यह विभिन्न स्क्रीन आकारों के लिए काम नहीं करता है – djechlin

+0

@djechlin इसके लिए एक प्रश्न पूछें। शायद आप प्रतिशत मानों का उपयोग कर सकते हैं या 'डिस्प्ले: निश्चित' ... मुझे यकीन नहीं है कि आप क्या करने का प्रयास कर रहे हैं। –

+4

व्यूपोर्ट ऊंचाई संपत्ति का उपयोग करें: ऊंचाई: 100vh – Joseph

0

मैं @Ionica Bizau पर टिप्पणी करना चाहता था, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है।
जावास्क्रिप्ट कोड के बारे में अपने प्रश्न का उत्तर देने के लिए:
आपको क्या करने की आवश्यकता है माता-पिता की तत्व ऊंचाई (अंतरिक्ष को लेने वाले किसी भी तत्व को कम करें) और इसे बाल तत्वों पर लागू करें।

function wrapperHeight(){ 
    var height = $(window).outerHeight() - $('#header').outerHeight(true); 
    $('.wrapper').css({"max-height":height+"px"});  
} 

नोट
खिड़की ".container" अगर है कि एक नहीं जारी बच्चे हैं या सही ऊंचाई की गणना करने के लिए एक ठीक है द्वारा प्रतिस्थापित किया जा सकता है। यह समाधान jQuery का उपयोग करता है।

1

समाधान ऊंचाई जोड़ने के लिए है: 100%; आपके .wrapper-div के सभी अभिभावक-तत्वों के साथ-साथ। तो:

html{ 
    heigth: 100%; 
} 

body{ 
    margin:0; 
    padding:0; 
    overflow:hidden; 
    height:100%; 
} 

#container{ 
    width:1000px; 
    margin:0 auto; 
    height:100%; 
} 
0

Angular2 + Material2 + Sidenav लिए, आप निम्न कार्य करने होंगे:

ngAfterViewInit() { 
    this.element.nativeElement.getElementsByClassName('md-sidenav-content')[0].style.overflow = 'hidden'; 
    } 
+0

उस पर कोई और जानकारी? भौतिक 2 के मामले में आप 'css' में 'ओवरफ़्लो: छुपा' क्यों नहीं डाल पाए? – Kuncevic

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