html+css配合div或伪元素编写动态旋转太极图

目录

一.主要思路

1.div思路

2.伪元素思路

二.完整代码

1.div写法

2.伪元素写法

三.最终效果


 

一.主要思路

div和伪元素两种方法都类似

1.div思路

创建一个大盒子并设置弧度(一个大圆),在内创建两个小盒子(两个小圆)设置弧度调整位置,为几个盒子设置颜色,最后赋予动画效果即可

2.伪元素思路

创建一个大盒子并设置弧度(一个大圆),在内设定前后元素,为前后元素设置宽高、弧度等属性,赋予颜色和动画效果即可

二.完整代码

1.div写法

(1)演示

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			@keyframes mytaiji{
				from{
					transform: rotate(0deg);
				}
				to{
					transform: rotate(360deg);
				}
			}
			.all{
				width: 0;
				height: 500px;        
				border-radius: 50%;           
				border-left: 250px solid white;
				border-right: 250px solid black;      
				animation: mytaiji 2s infinite linear;        
			}
			.top,.bottom{
				width: 90px;
				height: 90px;                
				border-radius: 50%;
				margin-left: -125px;
			}
			.top{
				border: 80px solid white;
				background-color: black;
			}
			.bottom{
				border: 80px solid black;
				background-color: white;
			}
			/* .border{
				width: 499px;
				height: 499px;
				border: 1px solid black;
				border-radius: 50%;
			} */
			body{
				background-color: lemonchiffon;
			}
		</style>
	</head>
	<body>
		<div class="border">
		<div class="all">
			<div class="top"></div>
			<div class="bottom"></div>
		</div>
		</div>
	</body>
</html>

(2)附上部分参考注释

 <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            @keyframes mytaiji{
                from{
                    transform: rotate(0deg);
                }
                to{
                    transform: rotate(360deg);
                }
            }
            /*设置动画效果,全方位旋转*/
            .all{
                width: 0;
                height: 500px;        
                border-radius: 50%;           /*设置宽高、边框弧度*/
                border-left: 250px solid white;
                border-right: 250px solid black;      

        /*设置大圆形内左右两边的颜色,这个边框弧度需要结合写的宽高进行调整*/
                animation: mytaiji 2s infinite linear;         /*为这个大图设置动画效果*/
            }
            .top,.bottom{
                width: 90px;
                height: 90px;                
                border-radius: 50%;
                margin-left: -125px;
            }
            /*根据大圆的宽高状况设置两个小圆的宽高和弧度,并调整他们的左右位置*/
            .top{
                border: 80px solid white;
                background-color: black;
            }
            .bottom{
                border: 80px solid black;
                background-color: white;
            }
            /*调整边框宽度和颜色来控制小黑圈和小白圈周围的样式*/
            /* .border{
                width: 499px;
                height: 499px;
                border: 1px solid black;
                border-radius: 50%;
            } */
            /*这一步可以省略,主要是为了设置左边白色区域的黑边框,更美观,也可以通过为整个页面设置背景颜色使得边框效果更明显*/
            body{
                background-color: lemonchiffon;
            }
        </style>
    </head>
    <body>
        <div class="border">
        <div class="all">
            <div class="top"></div>
            <div class="bottom"></div>
        </div>
        </div>
    </body>
</html>

2.伪元素写法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			@keyframes mytaiji{
				from{
					transform: rotate(0deg);
				}
				to{
					transform: rotate(360deg);
				}
			}
			.all{
				width: 0;
				height: 500px;
				border-radius: 50%;
				border-left: 250px solid white;
				border-right: 250px solid black;
				animation: mytaiji 2s infinite linear;
			}
			.all::before,.all::after{
				height: 90px;
				width: 90px;
				border: 80px solid red;
				border-radius: 50%;
				content: "";          /*content属性在伪元素选择器中建议写上,尽管不添加内容也写上*/
				display: block;        /*将元素转化为块元素,支持设置宽高等属性*/
				margin-left: -125px;
			}
			.all::before{
				border: 80px solid white;
				background-color: black;
			}
			.all::after{
				border: 80px solid black;
				background-color: white;
			}
			body{
				background-color: cornsilk;
			}
		</style>
	</head>
	<body>
		<div class="all"></div>
	</body>
</html>

三.最终效果

div写法效果

778453046d064ab49ddbf58ec352a485.png

伪元素写法效果 

547a712dafb84e82a1a800b9722b576e.png

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树下一少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值