zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    中间人攻击
    RSA算法详解
    Scala的自定义类型标记
    新版gitbook导出pdf
    request中跟路径有关的api的分析
    struts2初始化探索(一)
    struts2入门教学
    区块链学习笔记(五)
    区块链学习笔记(四)
    区块链学习笔记(三)
  • 原文地址:https://www.cnblogs.com/hzhjxx/p/10559666.html
Copyright © 2011-2022 走看看