使 CSS 循环打字效果响应
Making a CSS Loop Typing Effect Responsive
我使用 HTML 和 CSS 创建了打字机效果。它在网络上运行良好,但在移动设备上它不适合屏幕宽度。如何使效果响应?我希望背景图像保持静止。这是我的代码:
.typewriter h1 {
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
margin: 0 auto;
letter-spacing: .3em;
font-weight: bold;
animation: typing 5s steps(40, end), blink-caret .75s step-end infinite;
animation-iteration-count: infinite;
}
@keyframes typing {
from {
width: 0
}
to {
width: 15em
}
}
@keyframes blink-caret {
from,
to {
border-color: transparent
}
50% {
border-color: orange;
}
}
<div class="container">
<div class="typewriter">
<h1>Model Running . . .</h1>
</div>
</div>
桌面
手机
对于图像 I 你可以添加 max-width (100%/100vw)
但是对于文本,我认为你必须使用 CSS Media Queries 来设置不同的大小。
我用 @media
来减少移动版本上的 font-size
。这意味着,如果屏幕宽度不超过 800px,则减小 font-size
。如果这不是您想要的,请告诉我。
代码如下:
.typewriter h1 {
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
margin: 0 auto;
letter-spacing: .3em;
font-weight: bold;
animation: typing 5s steps(40, end), blink-caret .75s step-end infinite;
animation-iteration-count: infinite;
}
@keyframes typing {
from {
width: 0
}
to {
width: 15em
}
}
@keyframes blink-caret {
from,
to {
border-color: transparent
}
50% {
border-color: orange;
}
}
@media screen and (max-width: 800px){
.typewriter h1 {
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
margin: 0 auto;
letter-spacing: .3em;
font-weight: bold;
animation: typing 5s steps(40, end), blink-caret .75s step-end infinite;
animation-iteration-count: infinite;
font-size: 20px;
}
@keyframes typing {
from {
width: 0
}
to {
width: 15em
}
}
@keyframes blink-caret {
from,
to {
border-color: transparent
}
50% {
border-color: orange;
}
}
}
<div class="container">
<div class="typewriter">
<h1>Model Running . . .</h1>
</div>
</div>
我使用 HTML 和 CSS 创建了打字机效果。它在网络上运行良好,但在移动设备上它不适合屏幕宽度。如何使效果响应?我希望背景图像保持静止。这是我的代码:
.typewriter h1 {
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
margin: 0 auto;
letter-spacing: .3em;
font-weight: bold;
animation: typing 5s steps(40, end), blink-caret .75s step-end infinite;
animation-iteration-count: infinite;
}
@keyframes typing {
from {
width: 0
}
to {
width: 15em
}
}
@keyframes blink-caret {
from,
to {
border-color: transparent
}
50% {
border-color: orange;
}
}
<div class="container">
<div class="typewriter">
<h1>Model Running . . .</h1>
</div>
</div>
桌面
手机
对于图像 I 你可以添加 max-width (100%/100vw) 但是对于文本,我认为你必须使用 CSS Media Queries 来设置不同的大小。
我用 @media
来减少移动版本上的 font-size
。这意味着,如果屏幕宽度不超过 800px,则减小 font-size
。如果这不是您想要的,请告诉我。
代码如下:
.typewriter h1 {
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
margin: 0 auto;
letter-spacing: .3em;
font-weight: bold;
animation: typing 5s steps(40, end), blink-caret .75s step-end infinite;
animation-iteration-count: infinite;
}
@keyframes typing {
from {
width: 0
}
to {
width: 15em
}
}
@keyframes blink-caret {
from,
to {
border-color: transparent
}
50% {
border-color: orange;
}
}
@media screen and (max-width: 800px){
.typewriter h1 {
overflow: hidden;
border-right: .15em solid orange;
white-space: nowrap;
margin: 0 auto;
letter-spacing: .3em;
font-weight: bold;
animation: typing 5s steps(40, end), blink-caret .75s step-end infinite;
animation-iteration-count: infinite;
font-size: 20px;
}
@keyframes typing {
from {
width: 0
}
to {
width: 15em
}
}
@keyframes blink-caret {
from,
to {
border-color: transparent
}
50% {
border-color: orange;
}
}
}
<div class="container">
<div class="typewriter">
<h1>Model Running . . .</h1>
</div>
</div>