用CSS3做一个会旋转的太极图

 

 

先看源码:

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        body {
            background-color: rgb(79, 200, 248);
        }
        
        div {
            width: 200px;
            height: 400px;
            background-color: white;
            border-left: 200px solid black;
            margin: 50px auto;
            border-radius: 50%;
            transition: all .6s ease-in-out;
            -webkit-transition: all .6s ease-in-out;
            -moz-transition: all .6s ease-in-out;
            -o-transition: all .6s ease-in-out;
        }
        
        div::before,
        div::after {
            content: "";
            display: block;
            width: 50px;
            height: 50px;
            border-radius: 50%;
            margin-left: -100px;
        }
        
        div::before {
            background-color: white;
            border: 75px solid black;
        }
        
        div::after {
            background-color: black;
            border: 75px solid white;
        }
        
        div:hover {
            transform: rotate(360deg);
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            -o-transform: rotate(360deg);
            -ms-transform: rotate(360deg);
        }
    </style>
<body>
    <div></div>
</body>

第1步:这其中我们首先创建一个背景为白色的盒子,然后给盒子加上跟盒子一样大小的黑边框

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        body {
            background-color: rgb(60, 124, 241);
        }
        
        div {
            margin: 50px auto;
            width: 200px;
            height: 400px;
            background-color: white;
            border-left: 200px solid black;
        }
    </style>
<body>
    <div></div>
</body>

第2步:将这个盒子加入border-radius: 50%;变成圆形

 

第3步:用伪元素::before、::after给盒子前后加入两个小盒子,作为太极图的两个圆。给两个小盒子背景分别设为白色和黑黑色,并且给他们加上边框,合起来为大盒子的一半

第4步:让两个盒子向左移动能居中,并加入border-radius: 50%;变成圆形

第5步:给整个盒子加入鼠标移动到上面会旋转360度的动画:transform: rotate(360deg);

第6步:给第5步的动画加入过渡:transition: all .6s ease-in-out;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值