我希望在我们以html格式填充输入数据后,标签保持在输入字段的顶部

我已经try 了在css中的有效函数,但无法实现该功能.

.txt_field input {
  width: 100%;
  padding: 0 5px;
  height: 40px;
  font-size: 16px;
  border: none;
  background: none;
  outline: none;
}

.txt_field label {
  position: absolute;
  top: 65%;
  left: 5px;
  color: #adadad;
  transform: translateY(-50%);
  font-size: 16px;
  pointer-events: none;
  transition: .3s;
}

.txt_field input:focus~label {
  top: 0px;
  color: #0170C1;
}
<div class="txt_field">
  <i class="fa fa-user"></i>
  <input type="text" class="textbox" id="username" placeholder="">
  <label>PhoneNumber/Email</label>
</div>

我试了.txt_field input:focus ~valid次,但标签总是与输入数据重叠.

我可以做什么来使标签在输入字段填充后保持在顶部.

推荐答案

使用:placeholder-shown伪类来检测DOS输入是否被填充,并使用::placeholder伪元素 Select 器来隐藏不需要的占位符.

此外,为了更好地观看,您需要为.txt_field购买position:relative;美元.

除了~,还是用+比较好.

重要提示:输入标记必须具有非空的placeholder属性.

.txt_field{
    position:relative;
}

.txt_field input {
    width: 100%;
    padding: 0 5px;
    height: 40px;
    font-size: 16px;
    border: none;
    background: none;
    outline: none;
}

.txt_field label {
    position: absolute;
    top: 65%;
    left: 5px;
    color: #adadad;
    transform: translateY(-50%);
    font-size: 16px;
    pointer-events: none;
    transition: .3s;
}

.txt_field input:focus+label, .txt_field input:not(:placeholder-shown)+label {
    top: 0px;
    color: #0170C1;
}

.txt_field input::placeholder {
    color: transparent;
}
<div class="txt_field">
    <i class="fa fa-user"></i>
    <input type="text" class="textbox" id="username" placeholder="if empty will not work">
    <label>PhoneNumber/Email</label>
</div>

Html相关问答推荐

如果DIV没有特定的sibling 姐妹,则以CSS为目标

Css网格:两列,除非小于150px

在弹性框布局中的第n个元素后强制换行

浏览器是否可以呈现存储在代码点0x09处的字形?

错误时交换表单,成功时使用HTMX重定向

如何防止滑动滚动元素时touch 屏出现空白区域?

如何使 CSS 网格项目像 Flexbox 项目一样匹配父级的高度

Swift WkMessageHandler 消息不发送

为什么溢出时overflow: auto框的底部有一个小间隙?

文本不显示在 div 下方

第 117 行的块标记无效:endblock,应为empty或endfor.您是否忘记注册或加载此标签?

如何使用 Bootstrap Grid 系统修复大屏幕上图片和进度条之间的空白?

在身体外部创建 tanget 45° div

如何使用 CSS 和 HTML 将文本放入图像中?

如何在没有容器的情况下沿基线将 div 中的元素居中?

Tailwind CSS 复选框样式不起作用

如何向弹出窗口添加 sanitize: false 选项?

当另一个 div 的高度改变或执行其内容的换行时,将 flex 方向更改为列

如何将图像高度设置为等于文本高度?