最近看到几篇有关css的文章,纯css实现各种复杂效果,甚至可以获取用户密码并发送到指定位置,甚是震撼。闲暇之余,利用自己现有的css基础,实现了本作品,同时练习一下许久不用的CSS3技能(技术分享,不考虑兼容性)。
话不多说,先上动图:
这是播放效果
看起来比较复杂,其实不然。运用的技术点如下:
- 转换transform
- 动画animation
- 渐变linear-gradient与圆角border-radius
- 盒子阴影box-shadow
HTML结构如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>flower</title>
<link rel="stylesheet" href="gift.css" type="text/css"/>
</head>
<body>
<div id="flower-container">
<div id="bg-star"></div>
<div id="flower-outer">
<span class="flower-outer outer1"></span>
<span class="flower-outer outer2"></span>
<span class="flower-outer outer3"></span>
<span class="flower-outer outer4"></span>
<span class="flower-outer outer5"></span>
<span class="flower-outer outer6"></span>
<span class="flower-outer outer7"></span>
<span class="flower-outer outer8"></span>
<div id="flower-center">
<span class="flower-center center1"></span>
<span class="flower-center center2"></span>
<span class="flower-center center3"></span>
<span class="flower-center center4"></span>
<span class="flower-center center5"></span>
<span class="flower-center center6"></span>
<span class="flower-center center7"></span>
<span class="flower-center center8"></span>
<div id="flower-inner">
<span class="flower-inner inner1"></span>
<span class="flower-inner inner2"></span>
<span class="flower-inner inner3"></span>
<span class="flower-inner inner4"></span>
<span class="flower-inner inner5"></span>
<span class="flower-inner inner6"></span>
<span class="flower-inner inner7"></span>
<span class="flower-inner inner8"></span>
</div>
</div>
</div>
</div>
</body>
</html>
复制代码
.flower-container类是最大的容器,里面两个元素分别是星空#bg-star和花朵容器#flower-outer。由于花瓣有3层,所以#flower-outer内依次嵌套了两层,没错,span元素就是花瓣,每层8个瓣。
千呼万唤始出来,CSS代码马上出来:
body{
font-size: 20px;
height: 100%;
width: 100%;
background:#000;
overflow: hidden;
}
复制代码
星空:
#bg-star{
top: 30%;
left: 30%;
height: 2px;
width: 2px;
position: absolute;
transform-style: preserve-3d;
box-shadow: 10em 10em yellow,
2.5em 10em white,10em 5em yellow,
20em 0em white,0em 20em white,
20em 20em white,25em 20em lightyellow,
40em 35em white,25em 40em white,
10em 50em white,60em 0em white,
5em 0em white,15em 40em yellow,
45em 30em white,30em 20em lightyellow,
35em 15em white,15em 35em y