【每日一练】81—CSS实现输入文本动画效果
我们练习的这个效果,是一个登录页面的文本信息输入的动画效果,具体效果如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>【每日一练】81—CSS实现输入文本动画效果</title>
</head>
<body>
<div class="inputBox">
<input type="text" required="required">
<span>昵称</span>
<i></i>
</div>
<div class="inputBox">
<input type="text" required="required">
<span>真名</span>
<i></i>
</div>
</body>
</html>
*
{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body
{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
flex-direction: column;
gap: 30px;
background: #222;
}
.inputBox
{
position: relative;
width: 250px;
}
.inputBox input
{
width: 100%;
padding: 10px 0 5px;
background: transparent;
outline: none;
box-shadow: none;
border: none;
color: #fff;
font-size: 1em;
letter-spacing: 0.1em;
transition: 0.5s;
}
.inputBox span
{
position: absolute;
left: 0;
padding: 10px 0 5px;
pointer-events: none;
font-size: 1em;
color: rgba(255,255,255,0.5);
text-transform: uppercase;
letter-spacing: 0.1em;
transition: 0.5s;
}
.inputBox input:valid ~ span,
.inputBox input:focus ~ span
{
color: #2196f3;
transform: translateY(-16px);
font-size: 0.65em;
}
.inputBox i
{
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 2px;
background: #fff;
overflow: hidden;
}
.inputBox i::before
{
content: '';
position: absolute;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,#ff1b69,#ff0,#2196f3,#9c27b0,#ff1b69);
animation: animate 2s linear infinite;
transition: 0.5s;
}
.inputBox input:valid ~ i::before,
.inputBox input:focus ~ i::before
{
left: 0;
}
@keyframes animate
{
0%
{
background-position-x: 0;
}
100%
{
background-position-x: 250px;
}
}
写在最后
以上就是今天【每日一练】的全部内容,希望今天的小练习对你有用,如果你觉得有帮助的话,请点赞我,关注我,并将它分享给你身边做开发的朋友,也许能够帮助到他。
我是杨小爱,我们明天见。
学习更多技能
请点击下方公众号
评论