仅用一个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了

相关文章
|
1月前
|
移动开发 JavaScript Java
关于Android中如何过滤HTML标签
关于Android中如何过滤HTML标签
37 0
HTML基础知识(1)常用标签的使用 h、p、img、meta、a、iframe...
该博客文章详细介绍了HTML的基础知识,包括注释、标签属性、常用标签、实体、图片引入、meta标签、内联框架、超链接的使用,并通过代码示例和测试结果截图展示了这些元素在网页中的应用效果。
HTML基础知识(1)常用标签的使用 h、p、img、meta、a、iframe...
|
11天前
|
移动开发 搜索推荐 前端开发
HTML结构的基本标签
HTML结构的基本标签
|
26天前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
25 1
|
4天前
HTML lable标签
HTML lable标签
|
4天前
|
移动开发 HTML5
HTML lable标签
HTML lable标签
|
1月前
|
搜索推荐 前端开发 SEO
SEO需要了解的8大html标签
SEO需要了解的8大html标签
35 2
|
1月前
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
69 0
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
|
1月前
|
XML 数据采集 机器学习/深度学习
使用 XPath 定位 HTML 中的 img 标签
使用 XPath 定位 HTML 中的 img 标签
|
1月前
HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)
HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)
25 0