java旋转爱心,前端 CSS : 3# 纯 CSS 实现粉色爱心
介绍
原文链接
感謝 comehope 大佬的 [前端每日实战]
工作三个月觉得糟糕跑路(顺带劝一下像我一样的新人, 不要急于入职, 一定要挑一挑)回家重新补充了一下基础知识及 node, 身为一个前端结果发现 CSS 已经手生了, 为了明年能够找到工作, 所以又开始练习了...
效果预览
源代码地址
代码解读
1. 首先是完成 html 结构
我们需要五颗爱心及底部的 footer
pink hearts
样式初始化及居中
body {
margin: 0;
height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: #f3f3f3;
overflow: hidden;
}
.hearts {
width: 100vw;
height: 20vw;
border: 1px solid; /* the snippet will be deleted */
box-sizing: border-box;
padding: 0 5vw;
display: flex;
align-items: center;
justify-content: space-between;
}
.heart {
width: 15vw;
height: 15vw;
border: 1px solid; /* the snippet will be deleted */
}
footer {
margin-top: 10vh;
text-transform: uppercase;
letter-spacing: 2px;
font-family: "verdana";
font-size: 22px;
color: #F48FB1;
}
2. 画出旋转的 粉红正方形
接着在第一个 heart 中添加一个粉红的正方形
添加 DOM 结构
基准面(plane) 定位并完成基础样式
.heart {
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.plane {
position: absolute;
opacity:0.8;
}
.half-heart {
width: 7.5vw;
height: 7.5vw;
background-color: pink;
transform: rotate(-45deg);
}
一颗爱心由两个基准面组成
.heart {
transform-style: preserve-3d;
}
.plane-right {
transform: rotateY(90deg); /* 因为此处为 90 度垂直, 所以并不可见 */
}
接着添加旋转动画(这样我们就可以看到两个基准面了)
.heart {
animation: rotate 5s ease-in-out infinite;
}
.heart:nth-of-type(1) {
animation-delay:-5s;
}
/* keyframes */
@keyframes rotate {
0% {
transform: rotateY(0deg) rotateZ(25deg) translateY(7.5vw);
}
50% {
transform: rotateY(270deg) rotateZ(25deg) translateY(-7.5vw);
}
100% {
transform: rotateY(360deg) rotateZ(25deg) translateY(7.5vw);
}
}
3. 将旋转的两个正方形改为心形
生成两个圆形放置在正方的上方即可(伪元素可解决)
.half-heart:before,
.half-heart:after {
content: "";
width: 7.5vw;
height: 7.5vw;
background-color: pink;
border-radius: 100%;
position: absolute;
}
.half-heart:before {
top: -3.25vw;
left: 0;
}
.half-heart:after {
top: 0;
left: 3.25vw;
}
好了, 这样一个旋转上升的爱心就完成了
4. 补完 5 个 heart
修改延迟时间(DOM 结构省略)
.heart:nth-of-type(1) {
animation-delay:-5s;
}
.heart:nth-of-type(2) {
animation-delay:-4s;
}
.heart:nth-of-type(3) {
animation-delay:-3s;
}
.heart:nth-of-type(4) {
animation-delay:-2s;
}
.heart:nth-of-type(5) {
animation-delay:-1s;
}
5. 最后
最后记得把之前确认位置及大小的 border 边框删除即可
java旋转爱心,前端 CSS : 3# 纯 CSS 实现粉色爱心相关推荐
- html编写气泡对话框,HTML+CSS入门 纯CSS手写圆角气泡对话框
本篇教程介绍了HTML+CSS入门 纯CSS手写圆角气泡对话框,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 嗯--我们设计师强烈要求一定要圆角!圆角的气泡对话框,不要那 ...
- [css] 使用纯CSS代码实现动画的暂停与播放
[css] 使用纯CSS代码实现动画的暂停与播放 一个属性:animation-play-state 取值:paused(暂停)|running(播放) hover取代点击 .stop:hover~. ...
- [css] 使用纯css来创建一个滑块
[css] 使用纯css来创建一个滑块 .checke{position: relative;-webkit-appearance: none;width:90px;height: 44px;line ...
- [css] 使用纯css能否监控到用户的一些信息?怎么实现?
[css] 使用纯css能否监控到用户的一些信息?怎么实现? 利用:active 伪类实现监控用户的点击 .button-1:active::after {content: url(./pixel.g ...
- java写三角形圆矩形_纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)...
图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome, ...
- before css 旋转_单标签!纯CSS实现动态晴阴雨雪
引言 本期分享一下如何仅用CSS3,实现单标签的动态晴阴雨雪.技术关键点就是"单标签"和"纯CSS".先看下最终效果: 再看看HTML代码: <div c ...
- Java制作二级导航菜单_纯CSS实现超简单的二级下拉导航菜单代码
本文实例讲述了纯CSS实现超简单的二级下拉导航菜单代码.分享给大家供大家参考.具体如下: 这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且 ...
- java实现星级评分功能_纯CSS的星级评价效果
前言 这种星星评价效果,相信大家这个并不陌生,经常会遇到这个.现在如果要我们自己实现一个,很多人第一反应可能用JS+CSS去实现它.这种方式并没有什么不好的地方,只是我们在复用的时候不是很方便,需要带 ...
- 制作css开关,纯css实现开关效果
大家好,我又来了,这次给大家表演使用纯css实现开关效果 首先是构思 我们使用标签来实现这个效果. checkbox的选中.未选中的特性,刚好对应开关的打开.关闭 on:打开 off:关闭 未选中,则 ...
- 【CSS】纯css实现立体摆放图片效果
1. 元素的 width/height/padding/margin 的百分比基准 设置 一个元素 width/height/padding/margin 的百分比的时候,大家可知道基准是什么? 举 ...
最新文章
- 【HTML】处理<br>换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决
- RedHat/CentOS系统信息查看命令大全
- 09 Softmax 回归 + 损失函数 + 图片分类数据集【动手学深度学习v2】
- 理解JWT(JSON Web Token)认证及python实践
- Android 自定义操作成功的loading动画
- 体积最小桌面linux,Tiny Core Linux - 体积最小的精简 Linux 操作系统发行版之一 (仅10多MB)...
- “中序表达式”转换为“前序表达式”、“后序表达式”
- 基于python的音频播放器_基于python实现音乐播放器代码实例
- 计算机网络对等模式,计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式。QQ聊天属于________模式。...
- Matlab Tricks(二)—— 空参空返回值的函数
- VirtualBox6.0安装及配置
- PostgreSQL与mysql语法不同
- 【离散数学】求闭包的例题
- 通用软件无线电平台 USRP X310
- pytorch 中 .detach() .detach_() 和 .data的区别
- datedif函数(datedif函数在哪里找)
- android调用录音编程,Android 调用MediaRecorder录音
- MySQL表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)
- shiny教程一 -- shiny入门
- 几种常用数据库的区别
热门文章
- hbase启动报错解决:ignoring option PermSize=128m; support was removed in 8.0
- Syslog和Windows事件日志收集
- 焊接机器人结构设计(毕业论文52页+CAD图纸+CAXA图纸+开题报告+任务书)
- 家用车,选择轿车还是SUV
- 苹果电脑安装Windows
- 4.14 致我们退役的科比!致我们逝去的青春!
- 常见测试用例的设计方法
- c实战开发前奏之指针常用参数传递 三板斧头到家
- 2022快手电商短视频运营白皮书:Q2对比Q1GMV总值增长率达12%
- ▷Scratch课堂丨scratch初级-4-图片增加特效