2012-06-04 16 views

उत्तर

10

यहाँ मेरी समाधान है, क्रिस Coyier से सीएसएस आकार का उपयोग करते।

http://jsfiddle.net/dDejan/XSs9L/

4 अतिरिक्त divs अपने कंटेनर है कि आप इस तरह से आकार का चाहते से प्रत्येक के लिए जावास्क्रिप्ट (अच्छी तरह से, jQuery वास्तव में) के माध्यम से डाला जाता है। इन divs यह माता पिता है के कोनों में पूरी तरह से तैनात कर रहे हैं, और वे तदनुसार स्टाइल लिंक स्वेन BIEDER

+0

साझा करने के लिए धन्यवाद यह केवल एक अतिरिक्त तत्व के साथ किया जा सकता है –

+1

@VladimirStarkov को जानना अच्छा है, उस अंतर्दृष्टि टिप्पणी के लिए धन्यवाद :) – dDejan

3

आप इस CSS triangles तकनीक का उपयोग बिल्कुल-तैनात :before और :after तत्वों का उपयोग कर रचना कर सकते हैं।

<div class="box"></div> 

सीएसएस: यहाँ

.box { 
    background-color:#2020ff; 
    height:50px; 
    width:50px; 
    position:relative 
} 

.box:after { 
    content:" "; 
    width: 0; 
    height: 0; 
    border-top: 10px solid #ffffff; 
    border-bottom: 10px solid transparent; 
    border-right:10px solid #ffffff; 
    position:absolute; 
    top:-9px; 
    right:0px; 

} 
+0

यह एक अच्छी शुरुआत की तरह लगता है के द्वारा पोस्ट में वर्णित के रूप कर रहे हैं, उदाहरण के कोड साझा करने के लिए परवाह ? – zehelvion

+0

यह अच्छा लग रहा है लेकिन क्या आप कोड समझा सकते हैं? मैं पूरी तरह समझ नहीं पा रहा हूं कि यह कैसे काम करता है? – zehelvion

+1

यह एक सीमा के कोने टुकड़े से एक त्रिकोण बनाने की पुरानी चाल है। इस मामले में यह एक सफेद त्रिकोण है जो नीले रंग के बक्से के एक हिस्से को ढकता है। आप सेटिंग्स को संपादित कर सकते हैं: यह देखने के बाद कि यह कैसे काम करता है। ऊपरी-बाएं कोने को कवर करने से पहले: एक और का उपयोग करें। यहां बताया गया है कि यह कैसे काम करता है: http://stackoverflow.com/questions/7073484/how-does-this-css-triangle-shape-work –

21

देखो। वहाँ आप सभी की जरूरत है:

http://css-tricks.com/examples/ShapesOfCSS/

संपादित मामले में कड़ी खो जाता है:

सीएसएस

#octagon { 
    width: 100px; 
    height: 100px; 
    background: red; 
    position: relative; 
} 

#octagon:before { 
    content: ""; 
    position: absolute; 
    top: 0; left: 0; 
    border-bottom: 29px solid red; 
    border-left: 29px solid #eee; 
    border-right: 29px solid #eee; 
    width: 42px; height: 0; 
} 

#octagon:after { 
    content: ""; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    border-top: 29px solid red; 
    border-left: 29px solid #eee; 
    border-right: 29px solid #eee; 
    width: 42px; 
    height: 0; 
} 
+0

हाँ आप सही हैं, मैंने इसे –

+0

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

+0

कोई समस्या नहीं है। जब दूसरा जवाब उसके लिए बेहतर काम करता है, तो यह ठीक है। अंत में यह लोगों की मदद करने के बारे में है और इस बारे में नहीं कि कौन स्वीकार करता है। –

1

box { 
 
    background-color: transparent; 
 
    position: fixed; 
 
    width: 300px; 
 
    height: 300px; 
 
} 
 
svg { 
 
    width: 300px; 
 
    height: 300px; 
 
} 
 
polygon { 
 
    visibility: visible; 
 
    background: black; 
 
    stroke: white; 
 
}
<box> 
 
    <svg> 
 
    <polygon points="0 250, 50 300, 300 300, 300 50, 250 0, 0 0" /> 
 
    </svg> 
 
</box>

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