javascript - 如果其他输入文本没有焦点并且具有价值但如果我集中并输入文本仍然存在,如何删除文本
问题描述
当我专注于输入时,我有一个电子邮件文本和一个跨度,跨度上升,我开始输入,但是当我停止输入时,电子邮件值仍然存在,跨度文本再次下降,因此它们相互溢出
所以我想在我仍然输入跨度文本时仍然在运行但当我完成我的电子邮件时跨度消失
.SignIn__Form__Email {
margin: auto;
position: relative;
width: 50%;
}
.SignIn__Form__Email .SignIn__Email {
width: 100%;
outline: none;
border: none;
box-shadow: none !important;
}
.SignIn__Form__Email .floating-label {
position: absolute;
pointer-events: none;
top: 5px;
left: 10px;
font-family: 'Baloo Tamma 2',
cursive;
transition: 0.2s ease all;
}
.SignIn__Form__Email input:focus~.floating-label,
.SignIn__Form__Email input:not(:focus):valid~.floating-label {
top: 0px;
left: 10px;
font-size: 13px;
opacity: 1;
}
.SignIn__Email:focus {
font-size: 15px;
padding: 15px 0px 10px 10px;
}
input::placeholder {
font-size: 16px !important;
}
input:focus::placeholder {
color: transparent;
}
<div className="SignIn__Form__Email">
<input
required
className="SignIn__Email"
type="email"
placeholder="Email Address"
></input>
<span className="floating-label">Email Address</span>
</div>
解决方案
纯 CSS 方法
.SignIn__Form__Email {
margin: auto;
position: relative;
width: 50%;
}
.SignIn__Form__Email .SignIn__Email {
width: 100%;
outline: none;
border: none;
box-shadow: none !important;
}
.SignIn__Form__Email .floating-label {
position: absolute;
pointer-events: none;
top: 5px;
left: 10px;
font-family: 'Baloo Tamma 2',
cursive;
transition: 0.2s ease all;
}
.SignIn__Form__Email input:focus~.floating-label,
.SignIn__Form__Email input:not(:focus):valid~.floating-label {
top: 0px;
left: 10px;
font-size: 13px;
opacity: 1;
}
/* added here the :valid selector */
.SignIn__Email:focus,
.SignIn__Email:valid {
font-size: 15px;
padding: 15px 0px 10px 10px;
}
input::placeholder {
font-size: 16px !important;
}
input:focus::placeholder {
color: transparent;
}
<div class="SignIn__Form__Email">
<input
required
class="SignIn__Email"
type="email"
placeholder="Email Address"
></input>
<span class="floating-label">Email Address</span>
</div>
试试这个。您可以从输入中删除 `placeholder` 属性。
除了那些"className"属性和一些"css"之外,我没有更改你的大部分代码。请注意,这仅在有人输入有效电子邮件时才有效,如果除了电子邮件之外还有任何其他内容时失败。如果您不仅要验证电子邮件,请pattern=".*\S.*"
在输入中添加属性。这只会匹配任何内容,并且会阻止默认电子邮件验证。因此,在这种情况下,您将不得不求助于手动验证。
推荐阅读
- react-native - 我应该如何在嵌套组件中使用钩子
- c++ - C1010: 查找预编译头文件时意外结束。您是否忘记将 '#include "pch.h"' 添加到您的源代码中?即使它在那里
- python - 如何在 Python 中使用 NordVPN?
- bash - 带倒计时线的 while 循环
- javascript - TypeError:n.split 不是函数
- php - MariaDB with PHP: SQLSTATE[HY000] [2002] Connection refused
- c# - 如何修复 Visual Studio 将 C# Unity 脚本视为杂项,因此无法自动完成?
- sql - 为什么使用子查询时此查询会变慢
- git - Git Subtree 拉取并自动提交合并
- python - Python中的枚举不转换为数字