css - 使用 CSS 动画化表单标签

标签 css sass

我正在尝试向标签添加一些简单的动画,因此当您在表单字段中单击时,标签会向上滑动 - 很像 Material Design 动画效果。

我遇到的问题是我们使用的是拉入页面的 Hubspot 表单,所以我实际上无法控制标记。

在我去询问我们的前端开发人员之前,我只是想知道这是否真的可以用纯 CSS 实现?

这基本上就是代码查找表单的方式:

<div class="hs-firstname">
<label>Enter First Name</labe>
<div class="input">
<input class="hs-input firstname"/>
</div>
</div> 

所以自然会想到尝试这样的事情:

input{position:relative;}
label{position:absolute; top:0; left:0; font-size:18px; transition: all 0.2s ease-in-out;}
input:focus ~ label{top:-15px; font-size:12px;}

问题是输入字段嵌套在它自己的 div 中,这又是我无法控制的。

否则这将是直截了当的。

所以只是想知道是否有人可能知道使用纯 CSS 解决这个问题的方法,或者是否确实需要一些 react.js(页面内置)

提前致谢

最佳答案

像这样使用这个结构和代码,

在@James Coyle 的回答中,如果你点击 Label 它将不起作用

.hs-firstname {
  position: relative; 
  margin-top: 50px;
}

input {
  position: relative;
  z-index: 2;
  background: transparent;
  padding: 2px 5px;
  border: 1px solid #999;
}
label {
  position: absolute;
  top: 0;
  left: 5px;
  font-size: 18px;
  transition: all 0.3s ease-in-out;
  z-index: 1;
}

input:focus + label {
  top: -18px;
  font-size: 14px;
}
<div class="hs-firstname">
  <input class="hs-input firstname" />
  <label>Enter First Name</label>
</div>

关于css - 使用 CSS 动画化表单标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56423539/

相关文章:

html - 如何使用 susy 在容器 div 之外拉伸(stretch)嵌套的 div 全宽?

sass - 为什么 grunt-contrib-compass 有一个 javascriptsDir 参数?

html - flexbox 中的垂直滚动表

html - Bootstrap - input-group-btn 想要向右浮动

html - 在页面上拉伸(stretch)两个 div

sass - Zurb Foundation 和 LiveReload SASS 编译器不工作

html - 尝试将 z-index 与 div 一起使用

javascript - 如何识别负责转轮动画的代码并设计其样式

css - 组件样式未在生产中应用-Vue

css - Font Awesome - 堆叠图标时,如何让第二个图标居中