2013-11-26 21 views
5

Im tự hỏi nếu ai biết nếu có thể, làm thế nào để tạo ra một hình thang bằng cách sử dụng CSS/Html/Canvas.Tạo một hình dạng 'hình thang' div với Clipped tràn

Tôi đã cố gắng để sắp xếp một băm với nhau chỉ rất lộn xộn của nó và sẽ không thể sử dụng được trong thế giới thực.

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; 
} 

Heres jsFiddle tôi ...

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

+0

Tại sao bạn đã làm gì không sử dụng được? Chính xác thì bạn đang cố đạt được điều gì? Fiddle của bạn dường như đang làm những gì bạn đang tìm kiếm. – sn3ll

+0

@ sn3ll: Những gì OP muốn cho nội dung văn bản là "clip" (bị ẩn) khi chảy bên ngoài hình dạng hình thang. – ScottS

+0

Nó không thể sử dụng được vì các kích thước phải là tĩnh, và chúng tẻ nhạt để thay đổi (không chỉ đơn giản là chiều rộng + chiều cao ở đây). – tybro0103

Trả lời

0

i don `t biết những gì bạn muốn. vì vậy tôi đoán điều này sẽ giúp bạn ít.

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

Một 'div' là' display: block' theo mặc định, do đó, điều này không có gì. – ScottS

+0

có bạn đúng, xin lỗi. – singhiskng

0

Bạn đang nói về điều gì đó như thế này? Kiểm tra fiddle này: jsfiddle.net/WWYYM/3/. Hãy cho tôi biết nếu nó làm việc cho bạn. Tôi đã chỉnh sửa mã của bạn như sau:

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

bạn có thể bổ sung chuyển đổi cũng như dưới đây:

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

tôi có thể làm điều đó với 2 divs thêm như giấy gói.

CSS

.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

Cảm ơn @Vals, tôi nghĩ rằng điều này là gần như tôi sẽ nhận được, có thể phải sử dụng một số .pngs như nó cũng sẽ là một trang web chất lỏng - chỉ muốn hỏi nếu nó có thể, đánh giá cao đầu vào của bạn. – Liam

Các vấn đề liên quan