2013-11-26 7 views
5

के साथ 'ट्रैपेज़ियम' आकार का div बनाएं, मुझे आश्चर्य है कि अगर कोई भी संभव है, तो सीएसएस/एचटीएमएल/कैनवास का उपयोग करके ट्रैपेज़ियम कैसे बनाएं।क्लिपेड ओवरफ्लो

मैंने हैश को एक साथ जोड़ने की कोशिश की है केवल यह बहुत गन्दा है और वास्तविक दुनिया में उपयोग करने योग्य नहीं होगा।

div { 
width:0; 
margin-left:-1000px; 
height:100px; 
border-right:1000px solid lightblue; 
border-top:60px solid transparent; 
border-bottom:60px solid transparent; 
padding-left:1000px; 
white-space:no-wrap; 
} 

यहाँ मेरा jsFiddle ...

http://jsfiddle.net/Liamatvenn/WWYYM/

+0

क्यों क्या आप व्यर्थ किया है है? वास्तव में आप क्या हासिल करने की कोशिश कर रहे हैं? ऐसा लगता है कि आप जो खोज रहे हैं वह आपका काम है। – sn3ll

+0

@ sn3ll: ट्राइपोज़ाइड आकार के बाहर बहते समय टेक्स्ट सामग्री के लिए ओपी चाहता है कि "क्लिप" (छुपाएं) हो। – ScottS

+0

यह अनुपयोगी है क्योंकि आकार स्थिर होना चाहिए, और वे बदलने के लिए थके हुए हैं (यहां केवल चौड़ाई + ऊंचाई नहीं)। – tybro0103

उत्तर

0

मैं नहीं जानता कि आप क्या चाहते। तो मुझे लगता है कि यह आपको थोड़ा सा मदद करेगा।

div { 
    width:0; 
    margin-left:-100px; 
    height:100px; 
    border-right:100px solid lightblue; 
    border-top:60px solid transparent; 
    border-bottom:60px solid transparent; 
    padding-left:100px; 
    white-space:no-wrap; 
} 
+1

एक 'div' डिफ़ॉल्ट रूप से' डिस्प्ले: ब्लॉक 'है, इसलिए यह कुछ भी नहीं करता है। – ScottS

+0

हाँ आप सही हैं, क्षमा करें। – singhiskng

0

क्या आप इस तरह कुछ के लिए बात कर रहे हैं? इस पहेली को जांचें: jsfiddle.net/WWYYM/3/। अगर यह आप के लिए काम करता है तो मुझे बतलाएगा। मैं निम्नलिखित की तरह अपने कोड को संपादित किया है:

div { 
    border-bottom: 100px solid lightblue; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    height: 0; 
    width: 500px; 
    white-space:no-wrap; 
    text-align:center; 
} 
0

आप इसके अलावा एक जैसे नीचे बदल सकता है:

div { 
width:0; 
margin-left:-50px; 
margin-top: -500px; 
height:100px; 
border-right:100px solid lightblue; 
border-top:60px solid transparent; 
border-bottom:60px solid transparent; 
padding-left:1000px; 
white-space:no-wrap; 

transform:rotate(20deg); 
-ms-transform:rotate(20deg); /* IE 9 */ 
-webkit-transform:rotate(90deg); 

}

1

मैं रैपर के रूप में 2 अतिरिक्त divs के साथ ऐसा कर सकते हैं।

सीएसएस

.trapezium { 
    position: absolute; 
    left: 40px; 
    top: 40px; 
    width: 300px; 
    height: 200px; 
    -webkit-transform: skewY(6deg); 
    overflow: hidden; 
} 

.trapezium > div { 
    background-color: yellow; 
    position: absolute; 
    left: 0px; 
    top: 50px; 
    width: 300px; 
    height: 200px; 
    -webkit-transform: skewY(-12deg); 
    overflow: hidden; 
} 

.trapezium > div > div { 
    font-size: 60px; 
    background-color: yellow; 
    position: absolute; 
    left: 0px; 
    top: -30px; 
    width: 300px; 
    height: 200px; 
    -webkit-transform: skewY(6deg); 
    overflow: hidden; 
} 

demo

+0

धन्यवाद @ वैल्स, मुझे लगता है कि यह जितना करीब होगा उतना करीब है, मुझे कुछ .pngs का उपयोग करना पड़ सकता है क्योंकि यह एक तरल पदार्थ भी होगा - बस यह पूछना चाहता था कि यह संभव है, तो अपने इनपुट की सराहना करें। – Liam

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