0

0

实现逐字显示文本的CSS动画教程

霞舞

霞舞

发布时间:2026-03-01 14:08:04

|

320人浏览过

|

来源于php中文网

原创

实现逐字显示文本的CSS动画教程

本文介绍如何使用纯html与css实现文本逐字打字机效果,通过steps()时间函数控制动画帧数,无需javascript即可完成流畅的字符逐显效果。

本文介绍如何使用纯html与css实现文本逐字打字机效果,通过steps()时间函数控制动画帧数,无需javascript即可完成流畅的字符逐显效果。

在现代网页开发中,“打字机效果”(Typewriter Effect)常用于首页标题、引导文案或交互式介绍,以增强视觉吸引力与用户注意力。虽然常见方案依赖JavaScript(如setTimeout循环插入字符),但若追求轻量、无脚本、高可维护性,纯CSS方案同样可行——关键在于利用CSS动画的animation-timing-function: steps()特性。

steps(n, end)将动画均匀划分为n个离散阶跃,每步停留固定时长,恰好契合“逐字显现”的需求:每个字符“跳入”视图,而非平滑过渡。但该方法有前提:需预先知道总字符数,并为每个字符单独包裹元素(如),以便统一控制宽度与布局。

以下为完整实现代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>逐字显示动画</title>
  <style>
    p {
      --letters: 47;           /* 总字符数(含空格与标点) */
      --letter-width: 0.6em;   /* 单字符占位宽度(建议等宽字体) */
      --duration: 8s;          /* 整体动画时长 */
      font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
      white-space: nowrap;
      width: 0;
      overflow: hidden;
      animation: tape var(--duration) steps(var(--letters)) both;
      display: inline-flex;
      margin: 0;
      font-size: 1.2rem;
      line-height: 1.5;
    }

    span {
      width: var(--letter-width);
      flex: none;
      /* 可选:添加轻微延迟营造自然感(非必需) */
      /* animation-delay: calc(var(--index) * 0.1s); —— 需JS动态注入,此处不采用 */
    }

    @keyframes tape {
      to {
        width: calc(var(--letters) * var(--letter-width));
      }
    }
  </style>
</head>
<body>
  <p>
    <span>H</span><span>e</span><span>l</span><span>l</span><span>o</span><span> </span>
    <span>t</span><span>h</span><span>e</span><span>r</span><span>e</span><span>.</span><span> </span>
    <span>M</span><span>y</span><span> </span><span>n</span><span>a</span><span>m</span><span>e</span><span> </span>
    <span>i</span><span>s</span><span> </span><span>X</span><span>Y</span><span>Z</span><span>.</span><span> </span>
    <span>I</span><span> </span><span>a</span><span>m</span><span> </span><span>d</span><span>o</span><span>i</span><span>n</span><span>g</span><span> </span>
    <span>t</span><span>h</span><span>i</span><span>s</span><span>.</span><span>.</span><span>.</span>
  </p>
</body>
</html>

关键要点说明:

科威旅游管理系统
科威旅游管理系统

该软件是以php+MySQL进行开发的旅游管理网站系统。系统前端采用可视化布局,能自动适应不同尺寸屏幕,一起建站,不同设备使用,免去兼容性烦恼。系统提供列表、表格、地图三种列表显示方式,让用户以最快的速度找到所需行程,大幅提高效率。系统可设置推荐、优惠行程,可将相应行程高亮显示,对重点行程有效推广,可实现网站盈利。系统支持中文、英文,您还可以在后台添加新的语言,关键字单独列出,在后台即可快速翻译。

下载

立即学习前端免费学习笔记(深入)”;

  • --letters 必须精确等于标签总数(本例为47),否则动画会提前结束或溢出;
  • 推荐使用等宽字体(如monospace),确保每个视觉宽度一致,避免跳动;
  • width: 0 → width: calc(...) 的动画配合 overflow: hidden 实现“从左向右展开”效果;
  • display: inline-flex 防止空格塌陷,保证字符间距可控;
  • 若文本含换行或复杂格式,此方案不适用——此时应切换至JavaScript方案(如requestAnimationFrame逐字符插入)。

⚠️ 注意事项:

  • 此方法不可响应式自动适配动态文本:内容变更需同步更新--letters值与HTML结构;
  • 对SEO与可访问性(a11y)友好——所有文本均存在于DOM中,屏幕阅读器可正常朗读;
  • 动画性能优秀(仅触发合成属性width),兼容Chrome 43+、Firefox 49+、Safari 10+及Edge 16+。

总结而言,该CSS方案是静态文案场景下的优雅解法:零JS依赖、高渲染效率、语义清晰。若项目需支持多语言、用户输入或实时更新文本,则建议结合JavaScript封装为可复用组件,以兼顾灵活性与体验一致性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1008

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

812

2023.11.06

edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1635

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

394

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

1015

2025.04.24

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

528

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

494

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

658

2023.08.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

6

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 37.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号