今天小编就为大家带来一篇HTML和CSS3实现2D、3D结合动画效果的文章。小编觉得挺不错的,为此分享给大家做个参考。一起跟随小编过来看看吧。
首先 在HTML中定义一个div,
<div class="heart"></div>
只需要一个p即可,我使用伪元素来画出;
<style>
/* 基于父级定位 */
.heart{
position: relative;
}
/* 使用伪元素画出两个图像,使用图形拼接来造出一个心 */
.heart::after,
.heart::before{
content: "";
position: absolute;
top: 100px;
left: 0;
right: 0;
margin: auto;
width: 50px;
height: 80px;
background: red;
/* borde-radius 有四个值 分别对应四个角,分别对应 左上 右上 右下 左下 */
border-radius: 50px 50px 0 0;
/* 旋转元素,两个一起旋转。等下只需要调动一个即可 */
transform: rotate(-45deg);
transform-origin: 0 100%;
}
/* 旋转元素 使它和before伪元素 拼接成一个心 */
.heart::after{
left: -100px;
transform: rotate(45deg);
transform-origin: 100% 100%;
}
</style>
通过以上代码我们就得到了一个红红火火的心
和上面画心形 一样 我依然使用的是伪元素来写的
先定义一个div,取名为 taiji
<div id="taiji"></div>
然后再用伪元素 且看我是如何把它给造出来,话不多说,直接上代码
<style type="text/css">
#taiji {
position: relative;
width: 200px;
height: 100px;
background: white;
border-color: black;
border-style: solid;
border-width: 4px 4px 100px 4px;
/*变成圆形*/
border-radius: 50%;
margin: 100px auto;
/* 定义动画 名称 时长 匀速 无限循环播放 */
animation: myfirst 4s linear infinite;
}
#taiji::before,
#taiji::after {
content: " ";
position: absolute;
top: 50%;
left: 0;
width: 25px;
height: 25px;
background: white;
border: 38px solid black;
border-radius: 50%;
}
#taiji::after {
left: 50%;
background: black;
border-color: white;
}
/* 定义动画 */
@keyframes myfirst {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
效果如下:
上文描述的就是HTML和CSS3实现2D、3D结合动画效果的详细内容,具体使用情况还需要大家自己动手实验使用过才能领会。如果想了解更多相关内容,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。