我想将这些戒指放在页面中央。 同心圆似乎移动而不是用同一个中心固定。 我无法理解中心是否在移动。 我想将它固定在页面的中心。 我无法理解半径是否在变化。 可能他们只是固定在一个中心,然后翻译了一些像素。
* {
box-sizing: border-box;
}
html {
font-size: 100%;
}
.orbit {
/*background: #090c29;*/
float: left;
width: 100%;
min-width: 100vw;
min-height: 100vh;
}
.orbit-icon {
width: 2em;
height: 2em;
line-height: 2em;
font-size: 0.1em;
border-radius: 100%;
/*background: #ccc;
color: #fff;*/
text-align: center;
display: block;
}
.orbit-wrap {
height: 50em;
list-style: none;
font-size: 2em;
}
.orbit-wrap>li {
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
/*.orbit-wrap > li:hover ul {
border-width: 2px;
border-color: #fff;
}
.orbit-wrap > li:hover ~ li ul {
border-color: rgba(255, 255, 255, 0.2);
}
.orbit-wrap > li:hover ~ li ul li {
opacity: 0.4;
}
ul[class^=ring] {
transition: all 300ms ease-in-out;
}
ul[class^=ring] li {
transition: all 300ms ease-in-out;
}*/
.ring-00 {
width: 40em;
height: 40em;
-webkit-animation: counterClockwiseRotate 35s linear infinite;
animation: counterClockwiseRotate 35s linear infinite;
}
.ring-00 i {
-webkit-animation: counterClockwiseRotate 35s linear infinite;
animation: counterClockwiseRotate 35s linear infinite;
}
.ring-00>*:nth-of-type(1) {
-webkit-transform: rotate(30deg) translate(25em) rotate(-30deg);
transform: rotate(30deg) translate(25em) rotate(-30deg);
}
.ring-00>*:nth-of-type(2) {
-webkit-transform: rotate(60deg) translate(25em) rotate(-60deg);
transform: rotate(60deg) translate(25em) rotate(-60deg);
}
.ring-00>*:nth-of-type(3) {
-webkit-transform: rotate(90deg) translate(25em) rotate(-90deg);
transform: rotate(90deg) translate(25em) rotate(-90deg);
}
.ring-00>*:nth-of-type(4) {
-webkit-transform: rotate(120deg) translate(25em) rotate(-120deg);
transform: rotate(120deg) translate(25em) rotate(-120deg);
}
.ring-00>*:nth-of-type(5) {
-webkit-transform: rotate(150deg) translate(25em) rotate(-150deg);
transform: rotate(150deg) translate(25em) rotate(-150deg);
}
.ring-00>*:nth-of-type(6) {
-webkit-transform: rotate(180deg) translate(25em) rotate(-180deg);
transform: rotate(180deg) translate(25em) rotate(-180deg);
}
.ring-00>*:nth-of-type(7) {
-webkit-transform: rotate(210deg) translate(25em) rotate(-210deg);
transform: rotate(210deg) translate(25em) rotate(-210deg);
}
.ring-00>*:nth-of-type(8) {
-webkit-transform: rotate(240deg) translate(25em) rotate(-240deg);
transform: rotate(240deg) translate(25em) rotate(-240deg);
}
.ring-00>*:nth-of-type(9) {
-webkit-transform: rotate(270deg) translate(25em) rotate(-270deg);
transform: rotate(270deg) translate(25em) rotate(-270deg);
}
.ring-00>*:nth-of-type(10) {
-webkit-transform: rotate(300deg) translate(25em) rotate(-300deg);
transform: rotate(300deg) translate(25em) rotate(-300deg);
}
.ring-00>*:nth-of-type(11) {
-webkit-transform: rotate(330deg) translate(25em) rotate(-330deg);
transform: rotate(330deg) translate(25em) rotate(-330deg);
}
.ring-00>*:nth-of-type(12) {
-webkit-transform: rotate(360deg) translate(25em) rotate(-360deg);
transform: rotate(360deg) translate(25em) rotate(-360deg);
}
.ring-0 {
width: 30em;
height: 30em;
-webkit-animation: clockwiseRotate 35s linear infinite;
animation: clockwiseRotate 35s linear infinite;
}
.ring-0 i {
-webkit-animation: counterClockwiseRotate 35s linear infinite;
animation: counterClockwiseRotate 35s linear infinite;
}
.ring-0>*:nth-of-type(1) {
-webkit-transform: rotate(30deg) translate(20em) rotate(-30deg);
transform: rotate(30deg) translate(20em) rotate(-30deg);
}
.ring-0>*:nth-of-type(2) {
-webkit-transform: rotate(60deg) translate(20em) rotate(-60deg);
transform: rotate(60deg) translate(20em) rotate(-60deg);
}
.ring-0>*:nth-of-type(3) {
-webkit-transform: rotate(90deg) translate(20em) rotate(-90deg);
transform: rotate(90deg) translate(20em) rotate(-90deg);
}
.ring-0>*:nth-of-type(4) {
-webkit-transform: rotate(120deg) translate(20em) rotate(-120deg);
transform: rotate(120deg) translate(20em) rotate(-120deg);
}
.ring-0>*:nth-of-type(5) {
-webkit-transform: rotate(150deg) translate(20em) rotate(-150deg);
transform: rotate(150deg) translate(20em) rotate(-150deg);
}
.ring-0>*:nth-of-type(6) {
-webkit-transform: rotate(180deg) translate(20em) rotate(-180deg);
transform: rotate(180deg) translate(20em) rotate(-180deg);
}
.ring-0>*:nth-of-type(7) {
-webkit-transform: rotate(210deg) translate(20em) rotate(-210deg);
transform: rotate(210deg) translate(20em) rotate(-210deg);
}
.ring-0>*:nth-of-type(8) {
-webkit-transform: rotate(240deg) translate(20em) rotate(-240deg);
transform: rotate(240deg) translate(20em) rotate(-240deg);
}
.ring-0>*:nth-of-type(9) {
-webkit-transform: rotate(270deg) translate(20em) rotate(-270deg);
transform: rotate(270deg) translate(20em) rotate(-270deg);
}
.ring-0>*:nth-of-type(10) {
-webkit-transform: rotate(300deg) translate(20em) rotate(-300deg);
transform: rotate(300deg) translate(20em) rotate(-300deg);
}
.ring-0>*:nth-of-type(11) {
-webkit-transform: rotate(330deg) translate(20em) rotate(-330deg);
transform: rotate(330deg) translate(20em) rotate(-330deg);
}
.ring-0>*:nth-of-type(12) {
-webkit-transform: rotate(360deg) translate(20em) rotate(-360deg);
transform: rotate(360deg) translate(20em) rotate(-360deg);
}
.ring-1 {
width: 20em;
height: 20em;
-webkit-animation: counterClockwiseRotate 30s linear infinite;
animation: counterClockwiseRotate 30s linear infinite;
}
.ring-1 i {
-webkit-animation: counterClockwiseRotate 30s linear infinite;
animation: counterClockwiseRotate 30s linear infinite;
}
.ring-1>*:nth-of-type(1) {
-webkit-transform: rotate(30deg) translate(15em) rotate(-30deg);
transform: rotate(30deg) translate(15em) rotate(-30deg);
}
.ring-1>*:nth-of-type(2) {
-webkit-transform: rotate(60deg) translate(15em) rotate(-60deg);
transform: rotate(60deg) translate(15em) rotate(-60deg);
}
.ring-1>*:nth-of-type(3) {
-webkit-transform: rotate(90deg) translate(15em) rotate(-90deg);
transform: rotate(90deg) translate(15em) rotate(-90deg);
}
.ring-1>*:nth-of-type(4) {
-webkit-transform: rotate(120deg) translate(15em) rotate(-120deg);
transform: rotate(120deg) translate(15em) rotate(-120deg);
}
.ring-1>*:nth-of-type(5) {
-webkit-transform: rotate(150deg) translate(15em) rotate(-150deg);
transform: rotate(150deg) translate(15em) rotate(-150deg);
}
.ring-1>*:nth-of-type(6) {
-webkit-transform: rotate(180deg) translate(15em) rotate(-180deg);
transform: rotate(180deg) translate(15em) rotate(-180deg);
}
.ring-1>*:nth-of-type(7) {
-webkit-transform: rotate(210deg) translate(15em) rotate(-210deg);
transform: rotate(210deg) translate(15em) rotate(-210deg);
}
.ring-1>*:nth-of-type(8) {
-webkit-transform: rotate(240deg) translate(15em) rotate(-240deg);
transform: rotate(240deg) translate(15em) rotate(-240deg);
}
.ring-1>*:nth-of-type(9) {
-webkit-transform: rotate(270deg) translate(15em) rotate(-270deg);
transform: rotate(270deg) translate(15em) rotate(-270deg);
}
.ring-1>*:nth-of-type(10) {
-webkit-transform: rotate(300deg) translate(15em) rotate(-300deg);
transform: rotate(300deg) translate(15em) rotate(-300deg);
}
.ring-1>*:nth-of-type(11) {
-webkit-transform: rotate(330deg) translate(15em) rotate(-330deg);
transform: rotate(330deg) translate(15em) rotate(-330deg);
}
.ring-1>*:nth-of-type(12) {
-webkit-transform: rotate(360deg) translate(15em) rotate(-360deg);
transform: rotate(360deg) translate(15em) rotate(-360deg);
}
.ring-2 {
width: 15em;
height: 15em;
-webkit-animation: clockwiseRotate 25s linear infinite;
animation: clockwiseRotate 25s linear infinite;
}
.ring-2 i {
-webkit-animation: counterClockwiseRotate 25s linear infinite;
animation: counterClockwiseRotate 25s linear infinite;
}
.ring-2>*:nth-of-type(1) {
-webkit-transform: rotate(30deg) translate(10em) rotate(-30deg);
transform: rotate(30deg) translate(10em) rotate(-30deg);
}
.ring-2>*:nth-of-type(2) {
-webkit-transform: rotate(60deg) translate(10em) rotate(-60deg);
transform: rotate(60deg) translate(10em) rotate(-60deg);
}
.ring-2>*:nth-of-type(3) {
-webkit-transform: rotate(90deg) translate(10em) rotate(-90deg);
transform: rotate(90deg) translate(10em) rotate(-90deg);
}
.ring-2>*:nth-of-type(4) {
-webkit-transform: rotate(120deg) translate(10em) rotate(-120deg);
transform: rotate(120deg) translate(10em) rotate(-120deg);
}
.ring-2>*:nth-of-type(5) {
-webkit-transform: rotate(150deg) translate(10em) rotate(-150deg);
transform: rotate(150deg) translate(10em) rotate(-150deg);
}
.ring-2>*:nth-of-type(6) {
-webkit-transform: rotate(180deg) translate(10em) rotate(-180deg);
transform: rotate(180deg) translate(10em) rotate(-180deg);
}
.ring-2>*:nth-of-type(7) {
-webkit-transform: rotate(210deg) translate(10em) rotate(-210deg);
transform: rotate(210deg) translate(10em) rotate(-210deg);
}
.ring-2>*:nth-of-type(8) {
-webkit-transform: rotate(240deg) translate(10em) rotate(-240deg);
transform: rotate(240deg) translate(10em) rotate(-240deg);
}
.ring-2>*:nth-of-type(9) {
-webkit-transform: rotate(270deg) translate(10em) rotate(-270deg);
transform: rotate(270deg) translate(10em) rotate(-270deg);
}
.ring-2>*:nth-of-type(10) {
-webkit-transform: rotate(300deg) translate(10em) rotate(-300deg);
transform: rotate(300deg) translate(10em) rotate(-300deg);
}
.ring-2>*:nth-of-type(11) {
-webkit-transform: rotate(330deg) translate(10em) rotate(-330deg);
transform: rotate(330deg) translate(10em) rotate(-330deg);
}
.ring-2>*:nth-of-type(12) {
-webkit-transform: rotate(360deg) translate(10em) rotate(-360deg);
transform: rotate(360deg) translate(10em) rotate(-360deg);
}
.ring-3 {
width: 10em;
height: 10em;
-webkit-animation: counterClockwiseRotate 20s linear infinite;
animation: counterClockwiseRotate 20s linear infinite;
}
.ring-3 i {
-webkit-animation: counterClockwiseRotate 20s linear infinite;
animation: counterClockwiseRotate 20s linear infinite;
}
.ring-3>*:nth-of-type(1) {
-webkit-transform: rotate(30deg) translate(5em) rotate(-30deg);
transform: rotate(30deg) translate(5em) rotate(-30deg);
}
.ring-3>*:nth-of-type(2) {
-webkit-transform: rotate(60deg) translate(5em) rotate(-60deg);
transform: rotate(60deg) translate(5em) rotate(-60deg);
}
.ring-3>*:nth-of-type(3) {
-webkit-transform: rotate(90deg) translate(5em) rotate(-90deg);
transform: rotate(90deg) translate(5em) rotate(-90deg);
}
.ring-3>*:nth-of-type(4) {
-webkit-transform: rotate(120deg) translate(5em) rotate(-120deg);
transform: rotate(120deg) translate(5em) rotate(-120deg);
}
.ring-3>*:nth-of-type(5) {
-webkit-transform: rotate(150deg) translate(5em) rotate(-150deg);
transform: rotate(150deg) translate(5em) rotate(-150deg);
}
.ring-3>*:nth-of-type(6) {
-webkit-transform: rotate(180deg) translate(5em) rotate(-180deg);
transform: rotate(180deg) translate(5em) rotate(-180deg);
}
.ring-3>*:nth-of-type(7) {
-webkit-transform: rotate(210deg) translate(5em) rotate(-210deg);
transform: rotate(210deg) translate(5em) rotate(-210deg);
}
.ring-3>*:nth-of-type(8) {
-webkit-transform: rotate(240deg) translate(5em) rotate(-240deg);
transform: rotate(240deg) translate(5em) rotate(-240deg);
}
.ring-3>*:nth-of-type(9) {
-webkit-transform: rotate(270deg) translate(5em) rotate(-270deg);
transform: rotate(270deg) translate(5em) rotate(-270deg);
}
.ring-3>*:nth-of-type(10) {
-webkit-transform: rotate(300deg) translate(5em) rotate(-300deg);
transform: rotate(300deg) translate(5em) rotate(-300deg);
}
.ring-3>*:nth-of-type(11) {
-webkit-transform: rotate(330deg) translate(5em) rotate(-330deg);
transform: rotate(330deg) translate(5em) rotate(-330deg);
}
.ring-3>*:nth-of-type(12) {
-webkit-transform: rotate(360deg) translate(5em) rotate(-360deg);
transform: rotate(360deg) translate(5em) rotate(-360deg);
}
ul[class^=ring] {
/*border: solid 1px rgba(33, 150, 243, 0.8);*/
position: relative;
padding: 0;
border-radius: 50%;
list-style: none;
box-sizing: content-box;
}
ul[class^=ring] li {
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 1.6em;
height: 1.6em;
margin: -0.8em;
}
/*
center;
*/
.orbit-center {
font-size: 2em;
width: 5em;
height: 5em;
line-height: 2em;
text-align: center;
border: solid 2px black;
border-radius: 100%;
visibility: hidden;
}
/*.orbit-center:hover .orbit-center__icon {
-webkit-transform: rotateZ(0deg);
transform: rotateZ(0deg);
}
.orbit-center__icon {
-webkit-transform: rotateZ(-360deg);
transform: rotateZ(-360deg);
transition: all 300ms ease-in-out;
}*/
.orbit-wrap>li.orbit-center:hover~li>ul {
width: 0;
height: 0;
}
.orbit-wrap>li.orbit-center:hover~li>ul * {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
/*
animations
*/
@-webkit-keyframes clockwiseRotate {
from {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes clockwiseRotate {
from {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-webkit-keyframes counterClockwiseRotate {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg);
}
}
@keyframes counterClockwiseRotate {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg);
}
}
/*
icons
*/
.fa-purple {
height: 120px;
width: 120px;
background: purple;
color: white;
}
.fa-blue {
height: 20px;
width: 20px;
background: blue;
color: white;
}
/*
.fa-coffee {
background: #4CAF50;
color: #CDDC39;
}
.fa-safari {
background: white;
color: darkslateblue;
}
.fa-firefox {
background: #1565c0;
color: #ff8f00;
}
.fa-chrome {
background: #fbc02d;
color: #ef6c00;
}
.fa-edge {
background: #03a9f4;
color: white;
}
.fa-android {
background: snow;
color: limegreen;
}
.fa-apple {
background: #444;
color: white;
}
.fa-linux {
background: white;
color: #222;
}
.fa-windows {
background: white;
color: #03a9f4;
}
.fa-terminal {
background: #222;
color: #fff;
}
.fa-html5 {
background: white;
color: #e65100;
}
.fa-css3 {
background: white;
color: #2196f3;
}
.fa-git {
background: #222;
color: white;
}
.fa-free-code-camp {
background: green;
color: white;
}
.fa-meetup {
background: red;
color: white;
}
.fa-podcast {
background: red;
color: white;
}
.fa-codepen {
background: #333;
color: white;
}
*/

<div class="orbit">
<ul class="orbit-wrap">
<li class="orbit-center">
<li>
<ul class="ring-00">
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
</ul>
</li>
<li>
<ul class="ring-0">
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
</ul>
</li>
<li>
<ul class="ring-1">
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
</ul>
</li>
<li>
<ul class="ring-2">
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
<li><i class="orbit-icon fa fa-purple"></i></li>
</ul>
</li>
<li>
<ul class="ring-3">
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
<li><i class="orbit-icon fa fa-blue"></i></li>
</ul>
</li>
</li>
</ul>
</div>
&#13;
答案 0 :(得分:0)
使用较少的代码创建相同布局的简单方法怎么样?我使用CSS变量来轻松控制颜色,圆的尺寸和容器的尺寸。
您当然可以通过添加更多类来省略CSS变量的使用。
.ring {
width: var(--d,100px);
height: var(--d,100px);
position: absolute;
top: calc(50% - (var(--d,100px)/2));
left: calc(50% - (var(--d,100px)/2));
}
.clock {
animation: clock 20s linear infinite;
}
.anti-clock {
animation: anti-clock 20s linear infinite;
}
.orbit {
position: absolute;
left:0;
right:0;
top:calc(50% - (var(--w, 15px))/2) ;
height: var(--w, 15px);
}
.orbit:before,
.orbit:after {
content:"";
position: absolute;
top: 0;
bottom: 0;
width: var(--w, 15px);
background:var(--c,purple);
border-radius: 50%;
left: 0;
}
.orbit:after {
right: 0;
left: auto;
}
.orbit:nth-child(2) {
transform:rotate(90deg);
}
.orbit:nth-child(3) {
transform:rotate(30deg);
}
.orbit:nth-child(4) {
transform:rotate(60deg);
}
.orbit:nth-child(5) {
transform:rotate(-30deg);
}
.orbit:nth-child(6) {
transform:rotate(-60deg);
}
@keyframes clock {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(-360deg);
}
}
@keyframes anti-clock {
100% {
transform: rotate(0deg);
}
0% {
transform: rotate(-360deg);
}
}
<div class="ring clock">
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
</div>
<div class="ring anti-clock" style="--d:300px;--w:40px;--c:blue;">
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
</div>
<div class="ring clock" style="--d:400px;">
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
</div>
<div class="ring anti-clock" style="--d:600px;--w:40px;--c:blue;">
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
<div class="orbit"></div>
</div>