css畫扇形按鈕


最近項目中需要制作一個扇形按鈕,效果是這樣的:

  

周圍四個扇形,和中間的小圓,全是能點擊的。這就需要畫扇形。百度了一下,有很多文章講了如何生成扇形,最后我借鑒了一個最簡單的實現方式,使用cssclip屬性,完美實現。

參考文章為:http://www.cnblogs.com/zhidong123/p/6026761.html,對作者表示感謝。 

 

clip,剪裁圖像,

 

(來自w3schoolhttp://www.w3school.com.cn/cssref/pr_pos_clip.asp

 

我的偶像張鑫旭早在2011年就寫過關於clip的博文,https://www.zhangxinxu.com/wordpress/2011/04/css-clip-rect/他網站上關於clip還有很多其他文章,都可以看看。

 

好了,說到我要實現的這個扇形按鈕組,

首先最外面肯定有一個圓形:

 

 

然后,再畫一個圓形,設成絕對定位,並加上背景色:

 

 

接着,進行裁剪,把右邊、下邊全部裁掉,只留下左上角,clip: rect(0px, 100px, 100px, 0px);

 

 

再旋轉一下角度,轉45度就好:

 

 

如此這般,再畫三個圓,進行同樣的裁剪,只是旋轉的角度不同。就會得到四塊“蛋糕” 

 

 

最后再往中間貼一塊小圓:

 

成功啦!

 

調整成效果圖中的顏色,並加上邊框,調整細節,注意裁剪的數值為99,比原來少了一像素,這樣互相之間就有個小空隙,更好看,顯得更高極。

 

 

最后附上代碼:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <style>
 7             body{background: #525252;}
 8             .sector{position: relative;width: 200px;height: 200px;margin: 0 auto;border: 2px solid #4a4a4a;border-radius: 50%;background: #4a4a4a;}
 9             .sector .box{position: absolute;width: 200px;height: 200px;border-radius: 50%;clip: rect(0px, 99px, 99px, 0);}
10             .sector .box,
11             .sector .center{transition: 0.5s;background: #5e5e5e;cursor: pointer;}
12             .sector .box:hover,
13             .sector .center:hover{background: #777;}
14             .sector .s1{transform: rotate(45deg);}
15             .sector .s2{transform: rotate(135deg);}
16             .sector .s3{transform: rotate(-135deg);}
17             .sector .s4{transform: rotate(-45deg);}
18             .sector .center{width: 90px;height: 90px;position: absolute;left: 54px;top: 54px;border: 2px solid #4a4a4a;border-radius: 50%;}
19         </style>
20     </head>
21     <body>
22         <div class="sector">
23             <div class="box s1"></div>
24             <div class="box s2"></div>
25             <div class="box s3"></div>
26             <div class="box s4"></div>
27             <div class="center"></div>
28         </div>
29     </body>
30 </html>

 

怎么樣,是不是超簡單的,新技能,get

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM