2012-05-13 24 views
12

मैं एक प्रोटोटाइप को तुरंत फेंकने के लिए ट्विटर की बूटस्ट्रैप लाइब्रेरी का उपयोग कर रहा हूं।गोलाकार कोनों के चारों ओर बॉक्स छाया?

<div class="navbar-messages container"> 
    <div class="alert alert-info fade in"> 
     <button class="close" data-dismiss="alert">&times;</button> 
     <strong>Awesomeness!</strong> You're pretty cool. 
    </div> 
    <div class="alert alert-error fade in"> 
     <button class="close" data-dismiss="alert">&times;</button> 
     <strong>Awesomeness!</strong> You're pretty cool. 
    </div> 
</div> 

यहाँ की तरह मेरे कम दिखता है::

यहाँ मेरी लेआउट दिखता HTML में की तरह है

div.navbar div.navbar-messages { 
    .drop-shadow(1px 1px 10px 1px rgba(0, 0, 0, 0.2)); 

    div.alert { 
     -webkit-border-radius: 0px; 
     -moz-border-radius: 0px; 
     border-radius: 0px; 

     margin-bottom: 0px; 

     &:last-child { 
      -webkit-border-bottom-right-radius: 4px; 
      -webkit-border-bottom-left-radius: 4px; 
      -moz-border-radius-bottomright: 4px; 
      -moz-border-radius-bottomleft: 4px; 
      border-bottom-right-radius: 4px; 
      border-bottom-left-radius: 4px; 
     } 
    } 
} 

.drop-shadow(@params) { 
    -moz-box-shadow: @params; 
    -webkit-box-shadow: @params; 
    box-shadow: @params; 
} 

क्या वास्तव में अजीब है कि ड्रॉप छाया चाइल्ड तत्व के चारों ओर curving नहीं है घुमावदार कोनों:

enter image description here

कैसे क्या मैं इसे कोनों के चारों ओर ठीक से वक्र बना सकता हूं?

+0

बॉक्स बॉक्स संख्या – Bongs

+1

बढ़ाएं बटन के पीछे शायद ढाल पृष्ठभूमि है जो सीमा-त्रिज्या से नहीं जा रही है? मैं आपके द्वारा दिए गए कोड का उपयोग करके समस्या का पुन: उत्पन्न नहीं कर सकता, [यह jsfiddle] देखें (http://jsfiddle.net/53kDh/1/)। (एफएफ और आईई 9 में परीक्षण किया गया है, आप अपने प्रश्न में एक विशिष्ट ब्राउज़र का उल्लेख नहीं करते हैं।) – Jeroen

+0

@ जेरोइन: आपका बेवकूफ यहां कोड से मेल नहीं खाता है। इस सवाल में, बॉक्स छाया एक मूल तत्व पर है। आपके बेड़े में, बॉक्स छाया केवल 'div.alert' तत्वों पर लागू होती है। – BoltClock

उत्तर

22

आपके div.navbar div.navbar-messages तत्व में गोलाकार कोनों की कमी है, इसलिए छाया चौकोर दिखाई देती है। जैसा कि इसके नाम से वर्णित है, box-shadow तत्व के बॉक्स के चारों ओर एक छाया खींचता है, और तत्व की सामग्री नहीं है, इसलिए यदि बॉक्स में गोलाकार कोनों नहीं हैं, तो न ही इसकी छाया होगी।

साथ ही आप div.navbar div.navbar-messages के लिए एक ही border-radius शैलियों लागू करने की कोशिश कर सकते हैं, तो अपनी छाया चारों कोनों वक्र होगा:

div.navbar div.navbar-messages { 
    .drop-shadow(1px 1px 10px 1px rgba(0, 0, 0, 0.2)); 
    .rounded-bottom-corners(4px); 

    div.alert { 
     -webkit-border-radius: 0px; 
     -moz-border-radius: 0px; 
     border-radius: 0px; 

     margin-bottom: 0px; 

     &:last-child { 
      .rounded-bottom-corners(4px); 
     } 
    } 
} 

.drop-shadow(@params) { 
    -moz-box-shadow: @params; 
    -webkit-box-shadow: @params; 
    box-shadow: @params; 
} 

.rounded-bottom-corners(@params) { 
    -webkit-border-bottom-right-radius: @params; 
    -webkit-border-bottom-left-radius: @params; 
    -moz-border-radius-bottomright: @params; 
    -moz-border-radius-bottomleft: @params; 
    border-bottom-right-radius: @params; 
    border-bottom-left-radius: @params; 
} 
+0

मैंने देखा है कि आप अपने सीएसएस उदाहरण में पैरा पास कर रहे हैं। मैंने एक त्वरित खोज की और कुछ भी उपयोगी नहीं मिला। क्या यह अवधारणा के सबूत के लिए है या वास्तव में ऐसा कुछ है जो आप कर सकते हैं? – Jacksonkr

+2

@ जैक्सन: यह एक कम सुविधा है। मैंने अभी देखा है कि सवाल टैग नहीं किया गया है [कम], इसलिए मैंने इसे जोड़ा है। आप इसके बारे में यहां पढ़ सकते हैं: http://lesscss.org/#-parametric-mixins – BoltClock

0

हां ... बस एक बॉर्डर-त्रिज्या div छाया है पर डाल । सुनिश्चित करें कि सीमा-त्रिज्या मान div के अंदर ऑब्जेक्ट से मेल खाता है और वे ठीक से मेल खाते हैं।

0

मैं इस है:

blockquote { 
    border: none; 
    font-style: italic; 
    font-size: 20px; 
    line-height: 40px; 
    font-weight: 300; 
    padding: 0; 
    margin: 30px 0; 
    text-shadow: 0 1px 1px #666666; 
    background: rgba(255,255, 255, 0.4); 
    box-shadow: 0px 0.5px 1px #888888; 
    padding-left: 10px; 
    -webkit-border-radius: 6px; 
    -moz-border-radius: 6px; 
    border-radius: 6px; 
} 

तो:

-webkit-border-radius: 6px; 
     -moz-border-radius: 6px; 
     border-radius: 6px; 

वह मेरे लिए बहुत अच्छी तरह से काम किया! बहुत बहुत धन्यवाद।

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