首页 > 其他分享 >css steps实现文本一个字一个字显示

css steps实现文本一个字一个字显示

时间:2023-04-11 17:24:38浏览次数:38  
标签:-- height width step steps var 文本 css row

大致思路:

  使用相对定位的div覆盖文本内容,并用animation控制宽度,位置。

  换行步骤在外层div上控制高度即可。

css的steps与animation一起使用可以控制文字单个显示,类似于文本输入,不过显示频率是线性。

添加一些css变量控制步骤宽度、高度和时间等,便于vue中也通过组件的props控制

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="utf-8">
  5     <title>春江花月夜 唐·张若虚</title>
  6     <style type="text/css">
  7         body {
  8             margin: 0;    
  9         }
 10 
 11         div.step {
 12             --step-width: 16em;
 13             --start-step-height: 5em;
 14             --end-step-height: 41em;
 15             --step-row-count: 18;
 16             --step-row-second: 4s;
 17             --step-column-count: 16;
 18             --step-column-second: 4s;
 19             --animation-text-flicker-time: 0.3s;
 20 
 21             position: relative;
 22             width: var(--step-width);
 23             height: var(--start-step-height);
 24             margin: 0 auto;
 25             font-size: 14px;
 26             overflow: hidden;
 27             animation: addHeight calc(var(--step-row-second) * var(--step-row-count)) steps(var(--step-row-count), jump-start) 0s forwards;
 28         }
 29         .step h1,h4 {
 30             margin: 0.5em 0;
 31             text-align: center;
 32             line-height: 1;
 33         }
 34         .step p {
 35             line-height: 1;
 36         }
 37         .step .hide {
 38             position: absolute;
 39             left: 0em;
 40             top: calc(var(--start-step-height) + 1em);
 41             width: var(--step-width);
 42             height: 1em;
 43             background-color: #fff;
 44             z-index: 1;
 45             animation: toRight var(--step-column-second) steps(var(--step-column-count), jump-start) infinite, toBootomOne calc(var(--step-row-second) * var(--step-row-count)) steps(var(--step-row-count), jump-start) var(--step-column-second) forwards, hide 0s calc(var(--step-row-second) * var(--step-row-count)) forwards;
 46         }
 47         .step .hide::before {
 48             position: absolute;
 49             width: 2px;
 50             height: 1em;
 51             top: 0;
 52             left: 1px;
 53             background-color: #000;
 54             animation: text var(--animation-text-flicker-time) infinite;
 55             content: '';
 56         }
 57 
 58         @keyframes toRight {
 59             0% {}
 60             100% { left: var(--step-width);width: 0; }
 61         }
 62         @keyframes toBootomOne {
 63             0% {}
 64             100% { top: calc(var(--end-step-height) + 1em); }
 65         }
 66         @keyframes addHeight {
 67             0% {}
 68             100% { height: var(--end-step-height); }
 69         }
 70         @keyframes text {
 71             0% {}
 72             100% { width: 0px; }
 73         }
 74         @keyframes hide {
 75             0% {}
 76             100% { display: none; }
 77         }
 78     </style>
 79 </head>
 80 <body>
 81     <div class="step">
 82         <h1>春江花月夜</h1>
 83         <h4>唐·张若虚</h4>
 84         <p>春江潮水连海平,海上明月共潮生。</p>
 85         <p>滟滟随波千万里,何处春江无月明!</p>
 86         <p>江流宛转绕芳甸,月照花林皆似霰;</p>
 87         <p>空里流霜不觉飞,汀上白沙看不见。</p>
 88         <p>江天一色无纤尘,皎皎空中孤月轮。</p>
 89         <p>江畔何人初见月?江月何年初照人?</p>
 90         <p>人生代代无穷已,江月年年望相似。</p>
 91         <p>不知江月待何人,但见长江送流水。</p>
 92         <p>白云一片去悠悠,青枫浦上不胜愁。</p>
 93         <p>谁家今夜扁舟子?何处相思明月楼?</p>
 94         <p>可怜楼上月裴回,应照离人妆镜台。</p>
 95         <p>玉户帘中卷不去,捣衣砧上拂还来。</p>
 96         <p>此时相望不相闻,愿逐月华流照君。</p>
 97         <p>鸿雁长飞光不度,鱼龙潜跃水成文。</p>
 98         <p>昨夜闲潭梦落花,可怜春半不还家。</p>
 99         <p>江水流春去欲尽,江潭落月复西斜。</p>
100         <p>斜月沉沉藏海雾,碣石潇湘无限路。</p>
101         <p>不知乘月几人归,落月摇情满江树。</p>
102         <div class="hide"></div>
103     </div>
104 </body>
105 </html>
View Code

标签:--,height,width,step,steps,var,文本,css,row
From: https://www.cnblogs.com/carrote/p/17306946.html

相关文章

  • 文本摘要热点及发展方向(?)
    热点:2019:摘要定制化的预训练模型不同场景的数据集学术论文摘要生成式摘要的事实一致性方向:模仿人撰写摘要的模式,融合抽取式和生成式摘要方法生成联合摘要基于语义层面研究进一步地深度挖掘句子级、篇章级的语义并加以利用来进一步提高文本摘要的语义一致性和可读性定制......
  • 如何隐藏一个元素?&&css中出现了两个一样的类定义,如何避免冲突?
    1.如何隐藏一个元素?1.使用display属性:设置元素的display属性为none,这样元素在页面上不会占用任何空间,同时也不会对其他元素造成影响2.使用visibility属性:设置元素的visbility属性为hidden,这样元素在页面上不可见,但仍然占用空间3.使用opacity属性:设置元素的opacity属性为0,这样元......
  • css变量声明使用
    今天跟朋友聊天被推荐的一个css变量使用,感觉挺方便的,适用于各种页面,类似于scssless~好处是减少样式代码的重复性,增加样式代码的扩展性和灵活性简单使用:<style>:root{--color:#000;--width:200px;}body{color:var(--color);width:var(--wi......
  • CSS 实现垂直居中的5种方法
    方法1:使用绝对定位和负外边距对块级元素进行垂直居中      优点:兼容不错。缺点:必须提前知道被居中块级元素的尺寸.father{width:300px;height:300px;background-color:red;position:relative;......
  • 【学习笔记】HTML+CSS
    HTMLHTML教程简介编辑器基础元素属性标题段落文本格式化链接头部CSS图像表格列表区块布局表单和输入1、意义:用于收集用户的输入信息表示文档中的一个区域,此区域包含交互控件,将用户收集到的信息发送到Web服务器一个文本字段的默认宽度是20个字符2、form......
  • Element Plus错误警告 | Popper: Detected CSS transitions on at least one of the f
    这个错误的解决方案如下:1.禁用"computeStyles"修饰符的adaptive选项:这将允许平滑过渡,但可能会降低性能。禁用"computeStyles"修饰符的adaptive选项,可以在创建Popper实例时指定modifiers参数,并将computeStyles的adaptive属性设置为false。示例如下:import{c......
  • CSS 属性 选择器
     具有特定属性的HTML元素样式具有特定属性的HTML元素样式不仅仅是class和id。注意:IE7和IE8需声明!DOCTYPE才支持属性选择器!IE6和更低的版本不支持属性选择器。属性选择器下面的例子是把包含标题(title)的所有元素变为蓝色:实例[title]{color:blue;}https://www.lekaowang......
  • css强制换行 css强制不换行的css方法
    以前总结过Div的换行和不换行的css写法。但对于表格单元格只知道一个属性nowrap可以使其不换行。近日有此需要,但发现加上nowrap在某些情况下还是会换行!无奈,没有一个强制不换行的方法吗?baidu了一下,令俺非常欣慰,还真的找到了办法,问题解决了。用CSS实现表格单元格数据自动换行或不......
  • css 清楚浮动的4种办法
    1、浮动:浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。         由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样2、我们使用position:fixed,absolute和float都会造成浮动效果。3、clear属......
  • css 实现单行、多行溢出 省略号显示
    1、单行溢出显示省略号:{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}2、多行溢出省略号:①、(缺点:此方法因为使用了webkit属性,故只能chrome等浏览器有效){-webkit-line-clamp:2;/*autoprefixer:off*/-webkit-box-orient:vertical;//防......