I trying to add a css-only typewriting animation. The starting letter should always be displayed and a word should appear. I using the method of using span
in combination with display: inline-block;
, overflow-hidden
and keyframes
.
However giving a span the value inline-block;
will cause the span to shift upwards on top of the baseline
.
I already thought about countering it with a negative margin/padding but I see issues with full responsivness in mind where I dont actually know the line height
or the baseline
.
So I need help to fix that issue by either fixing the vertical shifting to the baseline or by solving the animation in a different way (css)
body {
background-color: blue;
margin: 20px;
}
h1 {
color: yellow;
}
span {
color: white;
}
h1:nth-child(1) span {
display: inline-block;
white-space: nowrap;
overflow: hidden;
animation: typewriter;
animation-duration: 5s;
animation-timing-function: steps(40, end);
}
@keyframes typewriter {
from {
width: 0;
}
to {
width: 100%;
}
}
<h1>A<span>lpha</span></h1>
<h1>B<span>ravo</span></h1>
<h1>C<span>harlie</span></h1>
<h1>D<span>elta</span></h1>