2011-01-07 19 views
6

मैं पिछले एक या दो दिनों में बनाए गए एक पृष्ठ को पॉलिश कर रहा हूं और बॉक्स-छाया का उपयोग करने के बाद एक समस्या में भाग गया हूं - मुझे उम्मीद थी कि कोई व्यक्ति कुछ प्रकाश डालेगा इसे ठीक करने का आसान तरीका।बॉक्स-छाया और 100% द्रव चौड़ाई अंक

सेटअप: मेरे पास एक div है जिसमें चौड़ाई, अधिकतम चौड़ाई और बॉक्स-छाया समेत कुछ गुण हैं।

#mydiv { 
     width:100%; 
     max-width:1200px; 
     -webkit-box-shadow: 0px 0px 20px rgba(0, 0, 0, 1); 
     -moz-box-shadow: 0px 0px 20px rgba(0, 0, 0, 1); 
     box-shadow: 0px 0px 20px rgba(0, 0, 0, 1); 
} 

समस्या: "बॉक्स-छाया" संपत्ति div तत्व की चौड़ाई के 40px जोड़ता - हर तरफ 20px। जब एक स्क्रीन इतनी छोटी होती है कि सामग्री को 100% चौड़ाई विशेषता को हिट करना चाहिए, तो हम एक क्षैतिज स्क्रॉल-बार देखते हैं। सीएसएस के माध्यम से खोदने के बाद मैंने पाया कि यह इसलिए था क्योंकि div तकनीकी रूप से चौड़ाई की तरह कुछ था: 100% + 40 पीएक्स;

मैं क्या कोशिश की है: मैं अतिप्रवाह की स्थापना पर विचार किया है: माता पिता div पर छिपा हुआ है, लेकिन मैं एक न्यूनतम-चौड़ाई सेट है कि तब सामग्री दुर्गम होगा की क्या ज़रूरत है। मैंने बॉक्स-छाया सीएसएस में आकार तर्क के लिए प्रतिशत का उपयोग करने का भी प्रयास किया है - उदाहरण के लिए 1% - और फिर div की चौड़ाई को 98% पर सेट करना - लेकिन बॉक्स-छाया सीएसएस इसके लिए प्रतिशत स्वीकार नहीं कर रहा है आकार। मैंने ब्राउजर चौड़ाई का परीक्षण करने के लिए जावास्क्रिप्ट का उपयोग करने पर विचार किया है और उसके बाद बॉक्स-छाया तत्व को प्रदर्शित या छुपाएं, लेकिन यह इष्टतम समाधान की तरह प्रतीत नहीं होता है।

इसे संभालने का एक आसान तरीका होना चाहिए। विचार?

+0

मुझे खेद है, लेकिन ऐसा लगता है कि यह पुन: उत्पन्न नहीं होता है। http://www.jsfiddle.net/xXXLK/1/ (ऊंचाई और पृष्ठभूमि रंग जोड़ा)। – mingos

+0

यह परिणाम टैब में आपके पृष्ठ पर मेरे लिए प्रदर्शित करता है। फ़ायरफ़ॉक्स 3.6.13 में - यदि चौड़ाई 100% पर सेट की गई है तो आपको छाया को तब तक नहीं देखना चाहिए जब तक स्क्रीन पर्याप्त न हो, यह अधिकतम-चौड़ाई आकार से गुजरती है। –

उत्तर

9

यह एक ब्राउज़र बग है।

spec इस बारे में स्पष्ट नहीं हुआ करता था, लेकिन शब्दों के बाद से स्पष्ट करने के लिए है कि छाया स्क्रॉल प्रारंभ नहीं करना चाहिए जोड़ा गया है:

छाया स्क्रॉल गति प्रदान या स्क्रॉल करने योग्य क्षेत्र के आकार में वृद्धि नहीं करते।

लेकिन यह पहले चूक की वजह से, अधिकांश ब्राउज़र किया ट्रिगर छाया के लिए स्क्रॉल। यह अब सभी हालिया ब्राउज़रों में तय किया गया है।

कि पुराने ब्राउज़र में, आप या तो, स्क्रॉलबार के साथ रहती अपने #mydiv को overflow-x: hidden जोड़ना होगा और आशा है कि यह कुछ भी नष्ट नहीं होती है, या किसी अन्य तरीके से (जैसे अच्छे पुराने PNG का उपयोग करते हुए) छाया जोड़ने के लिए लगता है।

इसके अलावा निम्नलिखित दो संबंधित प्रश्नों देखें:

+0

इसके लिए धन्यवाद - कम से कम अब मुझे एक स्पष्टीकरण है। –

0

बॉक्स छाया के साथ तरल पदार्थ चौड़ाई साइटों में स्क्रॉल बार की समस्या के लिए एक समाधान नहीं है।

यदि आप अपने सीएसएस में @media निर्देश जोड़ते हैं तो आप पता लगा सकते हैं कि ब्राउज़र विंडो एक निश्चित चौड़ाई पर है (आधुनिक ब्राउज़र इसका समर्थन करते हैं और IE9 भी चाहिए)।

उदाहरण के लिए, एक अधिकतम-चौड़ाई 940px करने के लिए सेट के साथ एक केंद्रित pagewrap div के लिए, अपने स्टाइलशीट को यह जोड़ने का प्रयास करें:

@media स्क्रीन और (न्यूनतम-चौड़ाई: 998px) { div # pagewrap { -मोज़-बॉक्स-छाया: 3 पीएक्स 8 पीएक्स 26 पीएक्स # ए 1 ए 0 9; -webkit-box-shadow: 3px 8px 26px # a1a09e; बॉक्स-छाया: 3 पीएक्स 8 पीएक्स 26 पीएक्स # ए 1 ए 0 9; }}

@media सीएसएस में 998 पीएक्स की न्यूनतम चौड़ाई स्क्रॉल बार को ट्रिगर करने से ठीक पहले ड्रॉप छाया गायब हो जाती है।