console
<div class="loading">
<div class="left"></div>
<div class="right"></div>
<div class="bot"></div>
</div>
@keyframes a {
0% {
transform: rotateZ(0deg);
}
100% {
transform: rotateZ(360deg);
}
}
.loading {
margin: 100px auto;
width: 8em;
height: 8em;
position: relative;
overflow: hidden;
border-radius: 4em;
animation: a .5s linear infinite;
}
.loading::after {
content: '';
display: block;
width: 6em;
height: 6em;
border-radius: 3em;
background: #fff;
position: absolute;
z-index: 99;
left: 1em;
top: 1em;
}
.loading .progress {
position: absolute;
width: 6em;
height: 6em;
background-color: white;
border-radius: 50%;
left: 1em;
top: 1em;
line-height: 6em;
text-align: center;
}
.left,
.right {
width: 4em;
height: 8em;
overflow: hidden;
position: relative;
float: left;
background-color: #999999
}
.left {
border-radius: 8em 0 0 8em;
}
.right {
border-radius: 0 8em 8em 0;
}
.left:after,
.right:after {
content: "";
position: absolute;
display: block;
width: 4em;
height: 8em;
background-color: white;
border-radius: 8em 0 0 8em;
background-color: red;
}
.right:after {
content: "";
position: absolute;
display: block;
border-radius: 0 8em 8em 0;
}
.left:after {
transform-origin: right center;
}
.right:after {
transform-origin: left center;
transform: rotateZ(90deg);
}
.bot {
width: 8em;
height: 4em;
background: green;
position: absolute;
bottom: 0;
border-radius: 0 0 4em 4em;
}
.bot::after {
content: '';
width: 4em;
height: 4em;
background: black;
position: absolute;
display: block;
bottom: 0;
left: 0;
z-index: 9;
}