2010-09-15 19 views
74

में माता-पिता की घुमावदार सीमाओं का पालन करने के लिए मजबूर करना मेरे पास एक और div के अंदर एक div है। #outer और #inner#outer घुमावदार सीमाओं और एक सफेद पृष्ठभूमि है। #inner में कोई घुमावदार सीमाएं और हरी पृष्ठभूमि नहीं है। #inner#outer की घुमावदार सीमाओं से परे फैली हुई है। क्या इसे रोकने का कोई तरीका है?बच्चे को सीएसएस

#outer { 
 
     display: block; float: right; margin: 0; width: 200px; 
 
     background-color: white; overflow: hidden; 
 
     -moz-border-radius: 10px; 
 
     -khtml-border-radius: 10px; 
 
     -webkit-border-radius: 10px; 
 
     border-radius: 10px; 
 
    } 
 
    #inner { background-color: #209400; height: 10px; border-top: none; }
<div id="outer"> 
 
     <div id="inner"></div> 
 
     <!-- other stuff needs a white background --> 
 
     <!-- bottom corners needs a white background --> 
 
    </div> 
 

 

 

कोई फर्क नहीं पड़ता कि मैं कितना कोशिश यह अभी भी चढ़ जाता है। मैं #inner कैसे बना सकता हूं और #outer की सीमाओं को भर सकता हूं?

संपादित

निम्नलिखित हैक अब के लिए उद्देश्य की सेवा। लेकिन सवाल खड़ा है (शायद CSS3 और वेबब्रोसर लेखकों के लिए): बाल तत्व अपने माता-पिता की घुमावदार सीमाओं का पालन क्यों नहीं करते हैं और क्या उन्हें वहां मजबूर करने के लिए वैसे भी है?

हैक अब मेरी आवश्यकताओं के लिए इसे पाने के लिए हैक, आप व्यक्तिगत सीमाओं के लिए वक्र असाइन कर सकते हैं। तो मेरे उद्देश्यों के लिए, मैंने अभी भी आंतरिक तत्व के शीर्ष दो में एक वक्र असाइन किया है।

#inner { 
    border-top-right-radius: 10px; -moz-border-radius-topright: 10px; -webkit-border-top-right-radius: 10px; 
    border-top-left-radius: 10px; -moz-border-radius-topleft: 10px; -webkit-border-top-left-radius: 10px; 
} 
+0

आप वास्तव में स्थापित करने का प्रयास किया है आंतरिक तत्व के लिए समान सीमा त्रिज्या? –

+1

लेकिन मैं चाहता हूं कि आंतरिक तत्व की सीमा त्रिज्या सीधे नीचे हो। क्या केवल एक निश्चित कोने के लिए सीमा त्रिज्या सेट करना संभव है? निश्चित रूप से –

+0

। आप उन्हें 'सीमा-त्रिज्या: टीएल टीआर बीएल बीआर' जैसे असाइन भी कर सकते हैं। –

उत्तर

111

: इन उपयोग

एक बॉक्स की पृष्ठभूमि है, लेकिन इसकी सीमा-छवि नहीं है, उचित वक्र पर सेट की गई है (जैसा निर्धारित है 'पृष्ठभूमि-क्लिप' द्वारा ined)। सीमा या पैडिंग एज पर क्लिप (जैसे 'ओवरफ्लो' 'दृश्यमान' के अलावा) को भी वक्र पर क्लिप करना होगा। तत्वों की प्रतिस्थापित सामग्री हमेशा सामग्री किनारे वक्र पर छंटनी की जाती है। इसके अलावा, सीमा के वक्र के बाहर क्षेत्र तत्व की ओर से ओर माउस ईवेंट स्वीकार नहीं करता है।

http://www.w3.org/TR/css3-background/#the-border-radius

इसका मतलब है कि #outer पर एक overflow: hidden काम करना चाहिए। हालांकि, यह फ़ायरफ़ॉक्स 3.6 और नीचे के लिए काम नहीं करेगा। यह फ़ायरफ़ॉक्स 4:

गोलाकार कोनों अब सामग्री और छवियों को क्लिप करता है (यदि अतिप्रवाह: दृश्यमान सेट नहीं है) में तय किया गया है।

https://developer.mozilla.org/en/CSS/-moz-border-radius

तो आप अभी भी ठीक की आवश्यकता होगी, बस करने के लिए इसे छोटा:

#outer { 
    overflow: hidden; 
} 

#inner { 
    -moz-border-radius: 10px 10px 0 0; 
} 

इसे यहाँ काम कर देखें: http://jsfiddle.net/VaTAZ/3/

+0

बिंगो, मैं फ़ायरफ़ॉक्स 3.6 के साथ परीक्षण कर रहा था। तो यह बताता है। –

+0

कोई भी इस खेल में देर से आ रहा है, 'ओवरफ्लो: छुपा;' एफएफ के मौजूदा संस्करणों पर काम कर रहा है। सुनिश्चित करें कि जहां तक ​​आपकी आवश्यकताओं की आवश्यकता है, आप वापस परीक्षण करें। – BillyNair

+0

बस ध्यान रखना चाहते हैं कि पहेली में मार्जिन है, इसलिए 'ओवरफ्लो छुपा' का वास्तविक प्रभाव छिपा हुआ है – user10089632

1

इसके साथ क्या गलत होगा?

#outer { 
    display: block; float: right; margin: 0; width: 200px; 
    background-color: white; overflow: hidden; 
} 
#inner { background-color: #209400; height: 10px; border-top: none; } 

#outer, #inner{ 
    -moz-border-radius: 10px; 
    -khtml-border-radius: 10px; 
    -webkit-border-radius: 10px; 
    border-radius: 10px; 
} 
+0

मैं नीचे तीखे कोने के लिए चाहते हैं। इसमें दो आंतरिक divs होंगे, एक दूसरे को ओवरलैप करने के लिए नकारात्मक मार्जिन दिया जाएगा। –

+0

हम्म ... बाहर निकलता है आप व्यक्तिगत कोनों को सेट कर सकते हैं। तो मैंने बस शीर्ष दो सेट किया। –

0

आप स्थिति बनाने की कोशिश की है: भीतरी div के लिए रिश्तेदार ???

है जो:

#inner { 
    background-color: #209400; 
    height: 10px; 
    border-top: none; 
    position: relative; 
    left: 15px; 
    top: 15px; 
} 
+0

कोशिश की, फ़ायरफ़ॉक्स में काम नहीं किया। हालांकि अच्छा विचार है। –

2

आप तल पर तेज किनारों चाहते हैं: चश्मा के अनुसार

 
border-top-left-radius: 10px; 
border-top-right-radius: 10px; 

-moz-border-radius-topleft 
-moz-border-radius-topright 
संबंधित मुद्दे