怎么使用纯CSS实现蝴蝶标本的展示框效果
这篇文章主要为大家展示了“怎么使用纯CSS实现蝴蝶标本的展示框效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用纯CSS实现蝴蝶标本的展示框效果”这篇文章吧。
代码解读
定义dom,容器表示整只蝴蝶,因为蝴蝶是对称的,所以分为左右两边,每边有3个子元素:
<divclass="butterfly">
<divclass="left">
<span></span>
<span></span>
<span></span>
</div>
<divclass="right">
<span></span>
<span></span>
<span></span>
</div>
</div>
居中显示:
body{
margin:0;
height:100vh;
display:flex;
align-items:center;
justify-content:center;
background:linear-gradient(gray,lightyellow,gray);
}
定义蝴蝶的尺寸:
.butterfly{
position:relative;
width:10em;
height:10em;
}
先画左半边:
.butterfly.left{
position:absolute;
width:inherit;
height:inherit;
}
用第1个子元素画出翅膀的上半部分:
.butterflyspan{
position:absolute;
border-radius:50%;
}
.butterflyspan:nth-child(1){
width:5em;
height:7em;
background-color:gold;
}
用第2个子元素画出翅膀的下半部分:
.butterflyspan:nth-child(2){
width:5.5em;
height:3.5em;
background-color:orangered;
top:5em;
left:-2.5em;
filter:opacity(0.6);
}
用第3个子元素画出触角:
.butterflyspan:nth-child(3){
width:6em;
height:6em;
border-right:0.3emsolidorangered;
top:-0.5em;
}
把左半边复制一份到右半边:
.butterfly.right{
position:absolute;
width:inherit;
height:inherit;
}
.butterfly.right{
transform:rotateY(180deg)rotate(-90deg);
top:0.4em;
left:0.4em;
}
把标本装到展示框里:
.butterfly::before{
content:'';
position:absolute;
box-sizing:border-box;
top:-2.5em;
left:-8em;
width:24em;
height:18em;
background-color:black;
border:0.2eminsetsilver;
}
.butterfly::after{
content:'';
position:absolute;
box-sizing:border-box;
width:40em;
height:30em;
background-color:lightyellow;
top:-9em;
left:-16em;
border:2emsolidburlywood;
border-radius:3em;
box-shadow:
00.3em2em0.4emrgba(0,0,0,0.3),
inset0.4em0.4em0.1em0.5emrgba(0,0,0,.4);
z-index:-1;
}
最后,调整一下因图案倾斜引起的位移:
.butterfly{
transform:translateX(1em);
}
以上是“怎么使用纯CSS实现蝴蝶标本的展示框效果”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341