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

相关文章
|
2月前
|
移动开发 HTML5
HTML5标签的类型
HTML5标签的类型。
69 5
|
1月前
|
移动开发 搜索推荐 UED
HTML5的新语义化标签
HTML5引入的这些新语义化标签,通过明确标识内容的结构和意义,使得网页结构更加清晰,易于理解和维护。使用这些标签不仅提升了网页的可读性和可访问性,还增强了搜索引擎和辅助技术对网页内容的解析能力。在实际开发中,合理使用这些语义化标签,能够显著提升网页的质量和用户体验。
95 49
|
19天前
|
Web App开发 移动开发 前端开发
html5 canvas五彩碎纸屑飘落动画特效
h5 canvas飘落纸片动画是一款实现五彩纸屑飘落的背景动画特效,基于canvas绘制的空中飘落的纸屑片动画特效,适用于网页动态背景效果代码。简单使用,欢迎下载!代码适用浏览器:搜狗、360、FireFox(建议)、Chrome、Safari、Opera、傲游、世界之窗,是一款不错的的特效插件,希望大家喜欢!
35 5
|
29天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
45 5
|
1月前
|
前端开发
基于canvas实现的彩色纸屑组成文字3d动画HTML源码
基于canvas实现的彩色纸屑组成文字3d动画HTML源码
25 0
基于canvas实现的彩色纸屑组成文字3d动画HTML源码
|
1月前
html实现的破碎拼接文字动画特效代码
html实现的破碎拼接文字动画特效代码是一段会自动产生文字依次破碎再拼接的效果,非常的炫。欢迎对此段代码感兴趣的朋友前来下载使用。
31 1
|
1月前
|
移动开发 编解码 UED
除了 `<audio>` 和 `<video>` 标签,HTML5 还支持哪些多媒体格式?
【10月更文挑战第19天】HTML5对多种多媒体格式的支持,为网页开发者提供了丰富的选择,能够更好地满足不同类型多媒体内容在网页中的展示和交互需求,提升了网页的用户体验和多媒体应用的多样性。
|
1月前
|
前端开发 JavaScript
Canvas三维变化背景动画HTML源码
Canvas三维变化背景动画HTML源码
34 5
|
1月前
|
存储 移动开发 前端开发
|
2月前
|
前端开发
【HTML】img标签和超链接标签
【HTML】img标签和超链接标签
53 2