2013-10-18 6 views
7

के लिए सीमा मैंने सीएसएस आकारों की खोज की है और मुझे दिलचस्पी है कि उनके लिए सीमा (ठोस, बिंदीदार, धराशायी) बनाने के लिए कोई तरीका है (shapes)?सीएसएस आकार

पहली बात जो मैंने अभी भी की है, उसे एक और आकार बनाना था और इसे जेड-इंडेक्स (http://jsfiddle.net/gYKSd/) द्वारा पृष्ठभूमि पर रखा गया था, लेकिन यह केवल ठोस सीमा के रूप में प्रभाव डालता है।

HTML:

<div class="triangle"></div> 
<div class="background"></div> 

सीएसएस:

 .triangle { 
     position: absolute; 
     top: 14px; 
     left: 10px; 
     height: 0px; 
     width: 0px; 
     border-right: 50px solid transparent; 
     border-left: 50px solid transparent; 
     border-bottom: 100px solid red; 
     z-index: 0; 
} 
     .background { 
     position: absolute; 
     top: 0; 
     left: 0; 
     height: 0px; 
     width: 0px; 
     border-right: 60px dotted transparent; 
     border-left: 60px dotted transparent; 
     border-bottom: 120px dotted gray; 
     z-index: -1; 
    } 
+7

मूल रूप से आप चाहते थे का उत्पादन नहीं होगा उन के कोण के साथ किया जाता ऐसा नहीं कर सकता क्योंकि तत्व सीमाओं से बने होते हैं ... और सीमा के पास एक और सीमा नहीं हो सकती है। यह कहना नहीं है कि आप अतिरिक्त तत्व जोड़कर 'नकली' नहीं कर सकते हैं, लेकिन यह वह नहीं है जिसे आपने पूछा था। –

+1

सीएसएस आकार एक हैक हैं। सीएसएस को आकार देने के लिए डिज़ाइन नहीं किया गया है। निश्चित रूप से, यदि आपको जरूरी है तो मूल त्रिकोण के लिए इसका उपयोग करें; हर कोई काम करता है। लेकिन उम्मीद नहीं है कि यह एक कदम आगे जा सकेगा, क्योंकि आप नहीं कर सकते; हैक की प्रकृति यह है कि यह उतना ही अच्छा है जितना इसे प्राप्त होता है। यदि आप उससे कुछ और चाहते हैं, तो ब्राउज़र के उचित ग्राफिक्स टूल जैसे एसवीजी का उपयोग करें। – Spudley

+0

@Paulie_D हाँ क्षमा करें मैं स्पष्ट नहीं था। लेकिन मेरा मतलब था कि इस काम को हल करने के लिए चालें। –

उत्तर

3

आपका समाधान (पृष्ठभूमि div को पोजिशन करना) सबसे सी काम करने योग्य तरीका है जिसे आप सीएसएस में प्राप्त करने जा रहे हैं क्योंकि आकार ब्राउज़र के आकार के रूप में पहचाने जाते हैं।

आप एक वर्ग ले सकते हैं, प्रतिलिपि बना सकते हैं और एक बिंदु फटने के लिए उन्हें घुमा सकते हैं, और यह एक बिंदु विस्फोट की तरह दिखता है लेकिन जहां तक ​​ब्राउज़र का संबंध है, आपके पास 3 वर्ग हैं, एक बिंदु फट नहीं है, और यदि आप एक सीमा डालें, सीमाएं प्रत्येक वर्ग के चारों ओर होंगी।

आप छोटे आयत बना सकते हैं, उन्हें घुमा सकते हैं और उन्हें "सीमा" बनाने के लिए अपने "आकार" के किनारों पर स्थित कर सकते हैं, इसलिए हाँ, यह करने योग्य है, लेकिन सभी व्यावहारिक उद्देश्यों के लिए, यह पागल है।

यदि आपको फ्लाई पर आकार आकर्षित करने की आवश्यकता है, तो HTML5 कैनवास Intro to canvas drawing पर एक नज़र डालें।


एसवीजी अब since all recent browsers support it के साथ एक मान्य विकल्प है।

+0

और एसवीजी :) और +1 – FelipeAls

+0

धन्यवाद। आप सही हे। मैंने खराब ब्राउज़र समर्थन के कारण थोड़ी देर पहले svg पर छोड़ दिया था, लेकिन ऐसा लगता है कि यह हाल के ब्राउज़र के साथ अब कोई समस्या नहीं है। – Sylverdrag

+0

@Sylverdrag क्या आप जानते हैं कि कैनवास या एसवीजी की मांग करने वाले अधिक संसाधन क्या हैं। क्योंकि मैंने एसवीजी के साथ कभी काम नहीं किया है, लेकिन मैं कैनवास के साथ प्रयोग करता था और यह कुछ तेज़ नहीं लग रहा था। –

0

मैं इसे, संभव है, क्योंकि जो आप कर रहे हैं तथ्य यह है कि आकार सीमाओं से बने होते हैं पर निर्भर करता है नहीं लगता।

आप पहले से ही सीमा पर सीमाओं को जोड़ नहीं सकते हैं।

लेकिन जैसा कि आपने अपनी पहेली में दिखाया है, आप पृष्ठभूमि आकार के साथ एक और सीमा का अनुकरण कर सकते हैं।

0

कुछ जैसा कि ऊपर कहा .... सीएसएस आकार ठोस सीमाओं और, एक साथ आने ताकि आप सीमा शैली को बदल नहीं सकते हैं या आप आकार आप

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