html - 如何向输入添加 float 标签?

标签 html css

我希望当用户尝试在“输入”中输入文本时,标签会上升,如果他们将该区域留空,标签会返回到原始位置。如果用户在那里输入了一些内容,它就会保留在那里。

我在必需的输入框中尝试了此代码,它工作正常,但是当我尝试使用输入执行此操作并在输入中添加一些内容时,标签返回下来,它需要保留在那里。

div{
  margin-top:40px;
}
.btn-add input[type="text"]{
    width: 90%;
    padding: 10px 20px 0 20px;
    border: none;
    border-bottom:1px solid #999;
    font-size: 140%;
    color: #000;
}
.btn-add input:focus ~ .floating-label{
    top: -20px;
    bottom: 10px;
    left: 10px;
    font-size: 20px;
    opacity: 1;
    color: rgb(100, 6, 6);   
}
.floating-label {
    position: absolute;
    pointer-events: none;
    left: 20px;
    top:10px;
    transition: 0.2s ease all;
    color: #999999;
    font-size: 120%;
}
.form-float{
    position: relative;
}
<div class="form-float btn-add"> 
     <input type="text" class="inputText" placeholder="" >                             
     <label class="floating-label" >Button text</label>                        
</div>

我删除了input:not(:focus):valid~.floating-label,以便它可以与非必填字段一起使用

最佳答案

由于占位符的发生,请尝试此代码。

.form-group {
  position: relative;
  margin-bottom: 1.5rem;
}

input + .form-control-placeholder {
  position: absolute;
  transition: all 200ms;
  top: -20px;
    bottom: 10px;
    font-size: 20px;
    opacity: 1;
    color: rgb(100, 6, 6);
}

input:placeholder-shown + .form-control-placeholder {
      position: absolute;
    pointer-events: none;
    left: 20px;
    top:10px;
    transition: 0.2s ease all;
    color: #999999;
    font-size: 120%;
}

.form-control:focus + .form-control-placeholder {
  position: absolute;
  transition: all 200ms;
    top: -20px;
    bottom: 10px;
    font-size: 20px;
    opacity: 1;
    color: rgb(100, 6, 6);
}
input[type="text"]{
    width: 90%;
    padding: 10px 20px 0 20px;
    border: none;
    border-bottom:1px solid #999;
    font-size: 140%;
    color: #000;
}
label{
    position: absolute;
    pointer-events: none;
    left: 20px;
    top:10px;
    transition: 0.2s ease all;
    color: #999999;
    font-size: 120%;
}
<br>
<br>
<div class="form-group">
  <input type="text" class="form-control" placeholder=" " >
  <label class="form-control-placeholder">Button text</label>
</div>

关于html - 如何向输入添加 float 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71600233/

相关文章:

用于重新创建 Apple 2011 产品浏览器的 JQuery - 重复使用后出错

javascript - CSS 不适用于文本区域

css - div 不随文本扩展

html - 为什么我在使用几乎相同的代码构建的两个 HTML 页面中围绕标题区域移动

html - 将表单 float 到图像上 - 侧边栏

html - 如何使用媒体查询来显示特定于设备的内容

css - 如何为查看者提供自定义 CSS 选项

javascript - 如何完全控制 <div> 旋转

javascript - 从 IFrame 文档中获取标题

html - 显示嵌套的 div 失败