仅用一个HTML标签,实现带动画的抖音Logo(一)

简介: 大家好,我是零一,今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO,涉及了很多知识点,欢迎交流讨论

先上结果,最终实现效果如下:


cba1abba93485913b801f5ce4d879a9f.jpg


还原度应该还可以吧?


抖音Logo结构


想要用CSS来画抖音的Logo,前提要先了解它的构造,一定是一些几何图形的拼接组合,因为之前很多业界大佬已经扒过抖音的Logo的结构了,我就拿来借用一下:


f449fb7551e6550e823e43207026dc96.png


好的,有点复杂,简化一下,其实就是 4 个部分


323084dc771cce4db138f5c769778ab1.png


每个颜色划出来的区域代表一个部分,所以最后是:1/4圆环 + 半圆 + 长条矩形 + 半径略大一些的1/4圆环


制作思路


回到本文标题,有人要说我标题党了,这 logo 都划分成四个部分了,你怎么用一个标签搞定呢?就算你用 ::before::after,也加上标签本体一共也就三个部分


而且!抖音的 logo 是有两层的:


8368b82e1d4f7426a270ee548ec1068e.png


可以看到,是一个青色的音符和一个红色的音符叠加的


所以! 这么多元素,你怎么用一个标签完成呢?而且还说带动画,是不是逗我们玩呢?

好了,别急,咱们先捋一下思路哈:


  • 先从元素的大方向开始思考:


  • 需要实现一个黑色背景(需要一个标签)


  • 两个音符叠加("黑色背景"已经是一个标签了,那两个音符只能是两个伪元素)


  • 再从元素的小细节着手突破:


  • 需要在一个伪元素中一笔画出整个音符图案(容我思考一下...)


如何在一个伪元素中一笔画出整个音符图案呢?


💡 想到办法了,超级简单,给大家演示一下


<style>
  /* 为了保证文章整洁,省略一些代码... */
  .douyin::before {
    background: url('青色的音符.png')
  }
  .douyin::affter {
    background: url('红色的音符.png')
  }
</style>
<div class="douyin"/>


好了,轻松搞定,本文结束!鼓掌👏🏻 大家 点赞、收藏、转发 走起~


别骂了,别骂了,刚刚跟大家开了个小玩笑,正文走起!


我们肯定是要用到 background 属性的,不然哪来的色块啊,去扒一下 MDN 文档:


3b3ff55a5d1cfbfd64f94b2ff66ca4fe.png


都不用想了,只有一个 background-image 有用,那再具体看看:


2532b84d4c4aa4591e29112e6bbc2a51.png


划重点了!同学们,background-image 支持为一个元素设置一个或多个图像,来看一下其支持哪些图像类型:


daa5c58d44575db724e4a3283c3800fb.png


看了语法,发现基本上 <image> 类型支持的都是直接设置图片的,唯独有一个支持渐变函数的,例如:linear-gradientrepeating-linear-gradientradial-gradientconic-gradient ...


如果你还不会看CSS的语法,可以看我之前写的 热议:CSS为什么这么难学?一定是你的方法不对,超详细地讲解了如何解读CSS的语法(带实战的)


什么是渐变函数呢?根据它们的单词名字可以知道,支持了 线性、径向(其实就是圆)、锥形 的颜色渐变。我们用前两个就可以满足抖音 logo 的构造了


因为根据 MDN 上的解释,我们是可以使用多个渐变函数来控制元素的背景图像的,多个值用 , 隔开,例如官方的例子:


background-image: linear-gradient(rgba(0, 0, 255, 0.5), rgba(255, 255, 0, 0.5)),
                  url("../../media/examples/lizard.png");


用个比较形象的比喻,background-image 就像我们写字一样,写字需要一笔一划写,而 background-image, 隔开的每一个值就像每一个笔画,这些值共同组成了一个 "图像"


那我们就可以借助这些函数来画出抖音的logo了

相关文章
|
16天前
|
移动开发 搜索推荐 HTML5
如何使用HTML5的语义化标签来提高网站的可访问性?
【4月更文挑战第1天】如何使用HTML5的语义化标签来提高网站的可访问性?
22 1
|
1月前
HTML文档基础标签(2)
HTML文档基础标签(2)
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
12天前
|
JavaScript
Vue移动 HTML 元素到指定位置 teleport 标签
Vue移动 HTML 元素到指定位置 teleport 标签
|
16天前
|
移动开发 搜索推荐 开发者
HTML5中的语义化标签有哪些?
【4月更文挑战第1天】HTML5中的语义化标签有哪些?
9 0
HTML5中的语义化标签有哪些?
|
18天前
|
存储 移动开发 前端开发
html的常用标签
【4月更文挑战第1天】html的常用标签
19 4
|
1月前
如何在HTML中添加标签
如何在HTML中添加标签【2月更文挑战第26天】
33 5
|
1月前
HTML标签
【2月更文挑战第16天】HTML标签。
22 3
|
1月前
|
移动开发 搜索推荐 HTML5
HTML语义化标签
HTML语义化标签