【发布时间】:2020-12-07 16:46:13
【问题描述】:
首先我想说我是 HTML 和 CSS 的新手,如果答案很明显,请原谅我。我对我的 CSS 代码现在发生的事情完全感到困惑。我设计了一个登录页面,当用户单击输入元素时,标签文本会向上移动并改变颜色。一切都按预期完美运行。现在我正在使用与登录页面相同的动画制作注册表单以保持一致性。然而,出于某种奇怪的原因,虽然我使用了相同的代码(唯一的区别是位置类型 [使用绝对登录和注册使用相对],以及更多输入元素),但移动转换根本不起作用。文本仍然改变颜色,标签元素立即向上移动,没有过渡动画。任何关于为什么会发生这种情况的想法将不胜感激。
如果有帮助,我从 youtube 视频中获取了这个想法:https://www.youtube.com/watch?v=eeHqZeJ9Vqc
所有输入元素都遵循这个布局:
.center-card {
margin: 3vh auto 0 auto;
width: 30%;
min-width: 30%;
height: 85vh;
background: white;
border-radius: 10px;
}
.form-wrap {
margin: 0 auto;
width: 90%;
min-width: 90%;
}
.form-wrap form {
width: 100%;
}
.form-wrap label {
font-size: 16px;
}
.signup-inputs {
border-bottom: 2px solid #adadad;
}
.signup-inputs input,
.signup-inputs select {
width: 100%;
padding: 0 5px;
font-size: 16px;
border: none;
background: none;
outline: none;
position: relative;
top: 2.3vh;
}
.signup-inputs label {
position: relative;
bottom: 1vh;
left: 0.5vh;
color: #adadad;
pointer-events: none;
/*transform: translateY(-50%);*/
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
transition: 0.5s;
}
.inline-spacing {
width: 45%;
}
/* Container wrap for (decision maker and number of employees) and (email and phone number)*/
.decisionMaker-Employees,
.email-phone {
display: flex;
justify-content: space-between;
}
.password-margin {
margin-bottom: 3vh;
}
.signup-inputs span::before {
content: '';
width: 0%;
height: 0.3vh;
background: #2691d9;
position: relative;
top: 3.8vh;
display: flex;
transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
}
.signup-inputs input:focus~label,
.signup-inputs input:valid~label,
.signup-inputs select:focus~label,
.signup-inputs select:valid~label {
top: -4vh;
color: #2691d9;
}
.signup-inputs input:focus~span::before,
.signup-inputs input:valid~span::before,
.signup-inputs select:focus~span::before,
.signup-inputs select:valid~span::before {
width: 100%;
}
<div class="center-card">
<h1>Create an Account</h1>
<div class="form-wrap">
<form method="post">
<!-- Signup Name -->
<div class="signup-inputs">
<input type="text" id="name" name="name" required>
<span></span>
<label for="name">Name</label>
</div>
【问题讨论】:
标签: html css css-animations css-transitions