CSS3

2013-08-27 13 views
9

में एक त्रिभुज-समाप्त बटन आकार को दोबारा बनाना मैं CSS3 में इस आकार को फिर से बनाने की कोशिश कर रहा हूं।CSS3

<span><div id="shape"></div></span> 
span { 
    display: block; 
    margin-left: 88px; 
} 

#shape { 
    width: 160px; 
    height: 100px; 
    background: #dcdcdc; 
} 

#shape:before { 
    height: 76px; 
    width: 76px; 
    top: 20px; 
    content:""; 
    position: absolute; 
    border-radius: 10px; 
    background-color: #ccc; 
    left: 60px; 
    -webkit-transform:rotate(45deg); 

} 

#shape:after { 
    height: 76px; 
    width: 76px; 
    top: 20px; 
    content:""; 
    position: absolute; 
    border-radius: 10px; 
    left: 220px; 
    -webkit-transform:rotate(45deg); 
    background-color: #ccc; 
} 

दुर्भाग्य से, कि पैमाने पर नहीं करता है:: CodePen demo (मैं जिस तरह से मैंने किया वर्णन करने के लिए पृष्ठभूमि रंग बदल)

http://i.imgur.com/89qIwtf.png

यह मेरा समाधान था। यह महत्वपूर्ण है कि यह लंबवत पैमाने पर है।

एक जावास्क्रिप्ट समाधान भी काम करेगा।

+0

आप पहले से ही आप क्या चाहते हैं की एक छवि है। आप इसका उपयोग क्यों नहीं कर सकते (ग्रे पृष्ठभूमि को दूर करने के बाद)? आप अपने पेज के लिए कई आकारों का उपयोग कर सकते हैं। – 11684

+3

आप इसे कैसे स्केल करना चाहते हैं ?? –

+0

दुख की बात है कि jQuery सीधे छद्म तत्वों की ऊंचाई निर्धारित नहीं कर सकता है, या आप इसे jQuery के साथ सेट करने में सक्षम होंगे। यदि आप अन्य HTML तत्व जोड़ना चाहते हैं, तो jQuery के साथ करना आसान होगा। – robooneus

उत्तर

1

enter image description here

डेमो http://jsfiddle.net/Le8Hw/2/

शैली:

#kougiland{ 
    position:relative; 
    width:110px; 
    height:34px; 
    margin:100px; 
    color:white; 
    text-align:center; 
    font-size: 22px; 
    vertical-align: middle; 
    line-height: 30px; 
    background-color:red; 
    box-shadow: 0 4px 8px #ccc, 10px 5px 8px -4px #ccc, -9px 5px 8px -4px #CCC; 
    background-image: -webkit-linear-gradient(-90deg, rgba(255, 255, 255, 0.1) 0%, rgba(244, 244, 244, 0.35) 50%, rgba(225, 225, 225, 0) 51%, rgba(246, 246, 246, 0) 100%); 
} 

#kougiland:before,#kougiland:after{ 
    content:''; 
    position:absolute; 
    top: 4px; 
    height: 26px; 
    width: 26px; 
    background:red; 
    border-radius:4px; 
    -webkit-transform: rotateZ(45deg); 
    background-color:red; 
    background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.1) 0%, rgba(244, 244, 244, 0.35) 50%, rgba(225, 225, 225, 0) 51%, rgba(246, 246, 246, 0) 100%); 
} 
#kougiland:before{ 
    left:-14px; 
    box-shadow: 0px 7px 11px -4px #ccc; 
} 
#kougiland:after{ 
    right:-14px; 
    box-shadow: 7px 0px 11px -4px #ccc; 
} 

मार्कअप: के रूप में आप की तरह

<div id=kougiland>weiter</div> 

सिर्फ रंग बदलने और इसके साथ मजा :-)

+0

यह ओपी की समस्या को हल नहीं करता है ... इसे बदलने में सक्षम होना चाहिए सामग्री के आधार पर गतिशील रूप से ऊंचाई। – robooneus

+0

फिर speudo el चौड़ाई के लिए उपयोग करें: 100%; और jquery –

+0

के साथ ऊंचाई सेट करें आप jquery/js के साथ छद्म तत्वों तक नहीं पहुंच सकते हैं। वे तत्व बनाये गये हैं और डोम का हिस्सा नहीं हैं। – robooneus

1

एक posibility 3 डी रूपांतरण का उपयोग कर किया जा सकता है:

.diamond { 
    left: 50px; 
    top: 50px; 
    position: absolute; 
    height: 88px; 
    width: 300px; 
    background-color: transparent; 
    -webkit-perspective: 100px; 
    -moz-perspective: 100px; 
    perspective: 100px; 
} 

.diamond:before { 
    content: ''; 
    width: 100%; 
    height: 51%; 
    left: 0%; 
    top: 0%; 
    position: absolute; 
    border-color: red; 
    border-style: solid; 
    border-width: 3px 3px 0px 3px; 
    -webkit-transform: rotateX(20deg); 
    -moz-transform: rotateX(20deg); 
    transform: rotateX(20deg); 
    border-radius: 6px; 
    background-color: blue; 
} 

.diamond:after { 
    content: ''; 
    width: 100%; 
    height: 51%; 
    left: 0%; 
    bottom: 0%; 
    position: absolute; 
    border-color: red; 
    border-style: solid; 
    border-width: 0px 3px 3px 3px; 
    -webkit-transform: rotateX(-20deg); 
    -moz-transform: rotateX(-20deg); 
    transform: rotateX(-20deg); 
    border-radius: 6px; 
    background-color: lightblue; 
} 

fiddle

+0

यह एक बहुत अच्छा जवाब है और कुछ वोटों के हकदार हैं :) – Harry