介绍

原文链接

感謝 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 实现粉色爱心相关推荐

  1. html编写气泡对话框,HTML+CSS入门 纯CSS手写圆角气泡对话框

    本篇教程介绍了HTML+CSS入门 纯CSS手写圆角气泡对话框,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 嗯--我们设计师强烈要求一定要圆角!圆角的气泡对话框,不要那 ...

  2. [css] 使用纯CSS代码实现动画的暂停与播放

    [css] 使用纯CSS代码实现动画的暂停与播放 一个属性:animation-play-state 取值:paused(暂停)|running(播放) hover取代点击 .stop:hover~. ...

  3. [css] 使用纯css来创建一个滑块

    [css] 使用纯css来创建一个滑块 .checke{position: relative;-webkit-appearance: none;width:90px;height: 44px;line ...

  4. [css] 使用纯css能否监控到用户的一些信息?怎么实现?

    [css] 使用纯css能否监控到用户的一些信息?怎么实现? 利用:active 伪类实现监控用户的点击 .button-1:active::after {content: url(./pixel.g ...

  5. java写三角形圆矩形_纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)...

    图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome, ...

  6. before css 旋转_单标签!纯CSS实现动态晴阴雨雪

    引言 本期分享一下如何仅用CSS3,实现单标签的动态晴阴雨雪.技术关键点就是"单标签"和"纯CSS".先看下最终效果: 再看看HTML代码: <div c ...

  7. Java制作二级导航菜单_纯CSS实现超简单的二级下拉导航菜单代码

    本文实例讲述了纯CSS实现超简单的二级下拉导航菜单代码.分享给大家供大家参考.具体如下: 这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且 ...

  8. java实现星级评分功能_纯CSS的星级评价效果

    前言 这种星星评价效果,相信大家这个并不陌生,经常会遇到这个.现在如果要我们自己实现一个,很多人第一反应可能用JS+CSS去实现它.这种方式并没有什么不好的地方,只是我们在复用的时候不是很方便,需要带 ...

  9. 制作css开关,纯css实现开关效果

    大家好,我又来了,这次给大家表演使用纯css实现开关效果 首先是构思 我们使用标签来实现这个效果. checkbox的选中.未选中的特性,刚好对应开关的打开.关闭 on:打开 off:关闭 未选中,则 ...

  10. 【CSS】纯css实现立体摆放图片效果

    1.  元素的 width/height/padding/margin 的百分比基准 设置 一个元素 width/height/padding/margin 的百分比的时候,大家可知道基准是什么? 举 ...

最新文章

  1. 【HTML】处理<br>换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决
  2. RedHat/CentOS系统信息查看命令大全
  3. 09 Softmax 回归 + 损失函数 + 图片分类数据集【动手学深度学习v2】
  4. 理解JWT(JSON Web Token)认证及python实践
  5. Android 自定义操作成功的loading动画
  6. 体积最小桌面linux,Tiny Core Linux - 体积最小的精简 Linux 操作系统发行版之一 (仅10多MB)...
  7. “中序表达式”转换为“前序表达式”、“后序表达式”
  8. 基于python的音频播放器_基于python实现音乐播放器代码实例
  9. 计算机网络对等模式,计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式。QQ聊天属于________模式。...
  10. Matlab Tricks(二)—— 空参空返回值的函数
  11. VirtualBox6.0安装及配置
  12. PostgreSQL与mysql语法不同
  13. 【离散数学】求闭包的例题
  14. 通用软件无线电平台 USRP X310
  15. pytorch 中 .detach() .detach_() 和 .data的区别
  16. datedif函数(datedif函数在哪里找)
  17. android调用录音编程,Android 调用MediaRecorder录音
  18. MySQL表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)
  19. shiny教程一 -- shiny入门
  20. 几种常用数据库的区别

热门文章

  1. hbase启动报错解决:ignoring option PermSize=128m; support was removed in 8.0
  2. Syslog和Windows事件日志收集
  3. 焊接机器人结构设计(毕业论文52页+CAD图纸+CAXA图纸+开题报告+任务书)
  4. 家用车,选择轿车还是SUV
  5. 苹果电脑安装Windows
  6. 4.14 致我们退役的科比!致我们逝去的青春!
  7. 常见测试用例的设计方法
  8. c实战开发前奏之指针常用参数传递 三板斧头到家
  9. 2022快手电商短视频运营白皮书:Q2对比Q1GMV总值增长率达12%
  10. ▷Scratch课堂丨scratch初级-4-图片增加特效