IT评测·应用市场-qidao123.com

标题: 【开源宝藏】30天学会CSS - DAY6 第六课 流光文字动画 [打印本页]

作者: 笑看天下无敌手    时间: 2025-3-24 13:22
标题: 【开源宝藏】30天学会CSS - DAY6 第六课 流光文字动画

第 0 步:项目结构

  1. lighting-text/
  2.     ├─ index.html
  3.     └─ style.css
复制代码

第 1 步:编写 HTML 结构

在 index.html 中,焦点就是一个无序列表 <ul>,每个 <li> 对应一个字母/符号:
  1. <!DOCTYPE html>
  2. <html lang="pt-BR">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="author" content="Milena Carecho">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>CSS Animation</title>
  8.     <!-- 引入我们自己的 CSS -->
  9.     <link rel="stylesheet" type="text/css" href="style.css">
  10.     <!-- 引入字体(可选) -->
  11.     <link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
  12. </head>
  13. <body>
  14.     <ul>
  15.         <li>D</li>
  16.         <li>E</li>
  17.         <li>S</li>
  18.         <li>A</li>
  19.         <li>F</li>
  20.         <li>I</li>
  21.         <li>O</li>
  22.         <li>♡</li>
  23.         <li>C</li>
  24.         <li>S</li>
  25.         <li>S</li>
  26.     </ul>
  27. </body>
  28. </html>
复制代码
代码要点



第 2 步:全局样式与列表布局

在 style.css 里,先写一些根本样式让页面内容居中,并设定配景致:
  1. body {
  2.     height: 100vh;             /* 占满视窗高度 */
  3.     display: flex;             /* 启用 Flex 布局 */
  4.     justify-content: center;   /* 水平居中 */
  5.     align-items: center;       /* 垂直居中 */
  6.     font-family: 'Lato', sans-serif; /* 指定字体 */
  7.     background-color: #272727; /* 深色背景 */
  8. }
  9. /* <ul> 去掉默认的列表样式,使用 flex 排列字母 */
  10. ul {
  11.     margin: 0;
  12.     padding: 0;
  13.     display: flex;
  14. }
复制代码
解释


第 3 步:文字的根本外观

再来看看 <li> 的初始样式与动画:
  1. ul li {
  2.     list-style: none;   /* 去掉列表项符号 */
  3.     color: #484848;     /* 默认字体颜色(深灰) */
  4.     font-size: 88px;    /* 加大字号 */
  5.     letter-spacing: 15px; /* 增加字母间距,让效果更突出 */
  6.     animation: lighting 1.4s linear infinite;
  7.     /* 使用名为 lighting 的动画,时长1.4秒,线性播放并无限循环 */
  8. }
复制代码
解释

我们还没定义 @keyframes lighting,接下来就要完成它。

第 4 步:定义关键帧 lighting

这是本示例最焦点的动画部分:
  1. @keyframes lighting {
  2.     0% {
  3.         color: #484848;
  4.         text-shadow: none;
  5.     }
  6.     90% {
  7.         color: #484848;
  8.         text-shadow: none;
  9.     }
  10.     100% {
  11.         color: #fff900; /* 亮黄色 */
  12.         text-shadow: 0 0 7px #fff900, 0 0 50px #ff6c00;
  13.     }
  14. }
复制代码
动画阶段分析


第 5 步:让每个字母“依次”闪光

仅仅写上述动画,每个 <li> 会同时闪光。但示例中,每个字母的闪光是依次出现、相互错开的,这是通过 animation-delay 来控制。请看以下代码:
  1. ul li:nth-child(1) { animation-delay: 0s;    }
  2. ul li:nth-child(2) { animation-delay: 0.1s; }
  3. ul li:nth-child(3) { animation-delay: 0.2s; }
  4. ul li:nth-child(4) { animation-delay: 0.3s; }
  5. ul li:nth-child(5) { animation-delay: 0.4s; }
  6. ul li:nth-child(6) { animation-delay: 0.5s; }
  7. ul li:nth-child(7) { animation-delay: 0.6s; }
  8. ul li:nth-child(8) { animation-delay: 0.7s; }
  9. ul li:nth-child(9) { animation-delay: 0.8s; }
  10. ul li:nth-child(10){ animation-delay: 0.9s; }
  11. ul li:nth-child(11){ animation-delay: 1s;   }
复制代码
工作原理


你可以根据需求修改延迟,比如 0.08s、0.15s 等,或者在 .li:nth-child(N) 里改成想要的数值来调解节奏。

6. 运行结果与可选调解

现在,打开 index.html 预览,你会看到:
可选改动


总结

通过这一步步的解析,你已经把握了:
不需要任何 JavaScript,就能制作出一个漂移有序、富有节奏感的文字闪光动画。盼望本教程能让你理解 CSS 动画的乐趣与强大,并在实际项目中加以机动运用。祝你学习与创作舒畅!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4