2013-04-14 15 views
5

Tôi muốn tạo ra một số hình dạng như thế này:Tạo phần tử div tùy chỉnh với hình dạng đặc biệt động

enter image description here

Đây là 3 shapes.Then tôi muốn đặt một số yếu tố về hình này. Tôi cố gắng sử dụng thuộc tính bán kính đường viền nhưng không thể tạo hình dạng này. Ngoài ra tôi cố gắng sử dụng <img>, <map><area> nhưng tôi có vấn đề với các yếu tố đặt trên đó. Ý tưởng của bạn về nó là gì?

+0

Sử dụng '' thẻ, cho phép bạn vẽ bên trong một yếu tố ngăn chặn , tôi nghĩ đó là cách dễ nhất để đạt được những gì bạn mong muốn. – Imperative

+0

@Hoạt động bạn có nghĩa là sử dụng HTML5? Bạn có thể tạo mẫu không? Khả năng tương thích của trình duyệt với phần tử này là gì? –

+2

đã xem trang này: rất nhiều mẫu: http://www.html5canvastutorials.com/tutorials/html5-canvas-tutorials-introduction/ – Imperative

Trả lời

8

Bạn chỉ cần phải là người ngồi sáng tạo:

HTML:

<div id="circle"> 
    <div id="cover"></div>   
    <div id="innerCircle">  
     <div id="rect1"></div> 
     <div id="rect2"></div> 
    </div> 
</div> 

CSS:

#circle { 
     width: 140px; 
     height: 140px; 
     background: red; 
     -moz-border-radius: 70px; 
     -webkit-border-radius: 70px; 
     border-radius: 70px; 
     margin: 0 auto; 
     position: relative; 
     top: -50px; 
    } 

    #innerCircle { 
     width: 90px; 
     height: 90px; 
     background: white; 
     -moz-border-radius: 70px; 
     -webkit-border-radius: 70px; 
     border-radius: 70px; 
     position: absolute; 
     top: 25px; 
     right: 25px; 
    } 

    #rect1 { 
     width: 20px; 
     height: 90px; 
     background: white; 
    transform: rotate(30deg); 
    -ms-transform: rotate(30deg); /* IE 9 */ 
    -webkit-transform: rotate(30deg); /* Safari and Chrome */ 
     position: absolute; 
     top: 50%; 
     left: 5px; 
    } 

    #rect2 { 
     width: 20px; 
     height: 90px; 
     background: white; 
    transform: rotate(-30deg); 
    -ms-transform: rotate(-30deg); /* IE 9 */ 
    -webkit-transform: rotate(-30deg); /* Safari and Chrome */ 
     position: absolute; 
     top: 50%; 
     right: 5px; 
    } 

    #cover { 
     width: 150px; 
     height: 80px; 
     background: white; 
     position: absolute; 
     top: 0px; 
     left: 0px; 
    } 

http://jsfiddle.net/bnSe7/

Hoặc bạn có thể làm một cái gì đó như thế này, uốn cong hai bên và sử dụng Tính năng xoay CSS3 để có được ba hình dạng:

http://jsfiddle.net/RqWtC/1/

Bạn có thể sẽ phải sử dụng HTML5 canvas để đạt được hình dạng phức tạp chính xác mà bạn đang yêu cầu:

http://www.html5canvastutorials.com/tutorials/html5-canvas-custom-shapes/

+0

Cảm ơn bạn đã trả lời, nhưng tôi cần 3 phần tử và tôi cần tạo phần tử này tự động. hãy tưởng tượng lưu tọa độ trong cơ sở dữ liệu và tải trang, in chúng trên trang. –

+0

thì cược tốt nhất của bạn là sử dụng hình ảnh. Tại sao nó cần phải được mã? –

+0

Tôi muốn đặt phần tử trên các phần tử này, các phần tử này là các phần tử thùng chứa, ngoài ra tôi cần các giới hạn cho các phần tử vùng chứa của mình. nếu tôi sử dụng thẻ DIV và thiết lập hình nền cho nó, tôi đã không bị ràng buộc của hình dạng tùy chỉnh của tôi. bây giờ tôi không biết phần tử nào tôi nên sử dụng. –

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