最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何使用纯CSS实现一颗土星的效果

来源:动视网 责编:小采 时间:2020-11-27 18:47:48
文档

如何使用纯CSS实现一颗土星的效果

如何使用纯CSS实现一颗土星的效果:这篇文章给大家介绍的文章内容是关于如何使用纯CSS实现一颗土星的效果,有很好的参考价值,希望可以帮助到有需要的朋友。效果预览代码解读定义 dom,容器本身表示土星星球,其中的 ring 元素表示土星环:<p class="saturn">
推荐度:
导读如何使用纯CSS实现一颗土星的效果:这篇文章给大家介绍的文章内容是关于如何使用纯CSS实现一颗土星的效果,有很好的参考价值,希望可以帮助到有需要的朋友。效果预览代码解读定义 dom,容器本身表示土星星球,其中的 ring 元素表示土星环:<p class="saturn">
 这篇文章给大家介绍的文章内容是关于如何使用纯CSS实现一颗土星的效果,有很好的参考价值,希望可以帮助到有需要的朋友。

效果预览

代码解读

定义 dom,容器本身表示土星星球,其中的 ring 元素表示土星环:

<p class="saturn">
 <span class="rings"></span>
 </p>

居中显示:

body {
 margin: 0;
 height: 100vh;
 display: flex;
 align-items: center;
 justify-content: center;
 background-color: black;
}

定义容器尺寸:

.saturn {
 width: 20em;
 height: 20em;
 font-size: 20px;
}

画出土星星球(此为草稿,后面还会细化):

.saturn {
 position: relative;
}

.saturn::before,
.saturn::after {
 content: '';
 position: absolute;
 width: 9em;
 height: 9em;
 background: linear-gradient(
 palegoldenrod 0%,
 tan 10%,
 burlywood 30%,
 palegoldenrod 60%,
 darkgray 100%
 );
 border-radius: 50%;
 left: calc((20em - 9em) / 2);
 top: calc((20em - 9em) / 2);
}

画出土星环(此为草稿,后面还会细化):

.rings {
 position: absolute;
 width: inherit;
 height: inherit;
 background: radial-gradient(
 transparent 35%,
 dimgray 40%,
 slategray 50%,
 transparent 60%,
 dimgray 60%,
 slategray 70%,
 transparent 70%
 );
}

改变观察土星环的视角:

.rings {
 transform: rotateX(75deg);
}

为了使土星呈现被土星环环绕的效果,把土星分为上下两半,使它们和土星环的图层顺序从底到顶依次为:星球的下半部、土星环、星球的上半部:

.saturn::before {
 clip-path: inset(50% 0 0 0);
}

.saturn::after {
 clip-path: inset(0 0 50% 0);
}

至此,画出了土星的整体结构,接下来完善细节。
为土星环涂上丰富的渐变色:

.rings {
 background: radial-gradient(
 rgba(24,19,25,0) 0%,
 rgba(53,52,51,0) 34%,
 rgba(55,54,52,1) 36%,
 rgba(56,55,53,1) 37%,
 rgba(68,67,66,1) 38%,
 rgba(56,55,53,1) 39%,
 rgba(68,67,66,1) 40%,
 rgba(56,55,53,1) 41%,
 rgba(87,77,76,1) 42%,
 rgba(87,77,76,1) 44%,
 rgba(113,110,103,1) 46%,
 rgba(113,110,103,1) 48%,
 rgba(113,98,93,1) 49%,
 rgba(113,98,93,1) 51%,
 rgba(122,115,105,1) 52%,
 rgba(113,98,93,1) 53%,
 rgba(113,98,93,1) 54%,
 rgba(122,115,105,1) 55%,
 rgba(106,99,,1) 56%,
 rgba(106,99,,1) 58%,
 rgba(79,76,76,0) 60%,
 rgba(65,,70,1) 61%,
 rgba(65,,70,1) 62%,
 rgba(90,85,,1) 63%,
 rgba(78,74,73,1) 65%,
 rgba(78,73,74,1) 67%,
 rgba(78,73,74,0) 68%,
 rgba(78,73,75,1) 69%,
 rgba(78,73,75,1) 70%,
 rgba(78,73,76,0) 71%,
 rgba(77,72,76,0) 72%,
 rgba(24,19,25,0) 100%
 );
}

为星球涂上丰富的渐变色:

.saturn::before,
.saturn::after {
 background:
 linear-gradient(
 rgba(212,203,174,1) 0%,
 rgba(212,203,174,1) 10%,
 rgba(221,203,157,1) 15%,
 rgba(221,203,157,1) 17%,
 rgba(213,181,143,1) 22%,
 rgba(213,181,143,1) 26%,
 rgba(208,180,158,1) 32%,
 rgba(208,180,158,1) 36%,
 rgba(218,188,162,1) 37%,
 rgba(218,188,162,1) 39%,
 rgba(211,184,157,1) 41%,
 rgba(211,184,157,1) 49%,
 rgba(205,186,156,1) 51%,
 rgba(205,186,156,1) 52%,
 rgba(202,176,153,1) 53%,
 rgba(202,176,153,1) 65%,
 rgba(190,177,145,1) 68%,
 rgba(190,177,145,1) 80%,
 rgba(150,144,130,1) 91%,
 rgba(150,144,130,1) 95%,
 rgba(131,129,117,1) 97%,
 rgba(131,129,117,1) 100%
 );
}

再为星球增加光照效果:

.saturn::before,
.saturn::after {
 background:
 radial-gradient(
 circle at top, 
 transparent 40%,
 black
 ),
 radial-gradient(
 transparent 62%,
 black
 ),
 linear-gradient(
 rgba(212,203,174,1) 0%,
 rgba(212,203,174,1) 10%,
 rgba(221,203,157,1) 15%,
 rgba(221,203,157,1) 17%,
 rgba(213,181,143,1) 22%,
 rgba(213,181,143,1) 26%,
 rgba(208,180,158,1) 32%,
 rgba(208,180,158,1) 36%,
 rgba(218,188,162,1) 37%,
 rgba(218,188,162,1) 39%,
 rgba(211,184,157,1) 41%,
 rgba(211,184,157,1) 49%,
 rgba(205,186,156,1) 51%,
 rgba(205,186,156,1) 52%,
 rgba(202,176,153,1) 53%,
 rgba(202,176,153,1) 65%,
 rgba(190,177,145,1) 68%,
 rgba(190,177,145,1) 80%,
 rgba(150,144,130,1) 91%,
 rgba(150,144,130,1) 95%,
 rgba(131,129,117,1) 97%,
 rgba(131,129,117,1) 100%
 );
}

最后,把画面旋转一点角度:

.saturn {
 transform: rotate(-15deg);
}

大功告成!

相关推荐:

如何使用CSS和D3实现无尽六边形空间的效果

如何利用css画出一只小鸟(代码)

文档

如何使用纯CSS实现一颗土星的效果

如何使用纯CSS实现一颗土星的效果:这篇文章给大家介绍的文章内容是关于如何使用纯CSS实现一颗土星的效果,有很好的参考价值,希望可以帮助到有需要的朋友。效果预览代码解读定义 dom,容器本身表示土星星球,其中的 ring 元素表示土星环:<p class="saturn">
推荐度:
标签: 效果 一颗 土星
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top