CSS:缩放文本字段而不缩放内部文本

标签 css

是否可以在保持字体大小的同时仅在 X 轴上缩放文本输入?

我做了这样的事情:

#searchInput {
  text-decoration: none;
  display: inline-block;
  background-color: rgba(0, 0, 0, 0);
  border: none;
  border-bottom: 3px solid transparent;
  width: 10px;
  border-bottom-color: blue;
  padding-left: 10px;
  padding-bottom: 5px;
  height: 40px;
  font-size: 30px;
  color: #307fff;
  transition: 1s ease;
  transform-origin: top left;
}
#searchInput:hover {
  border-bottom: 3px solid blue;
  transform: scaleX(25);
}
#searchInput:focus {
  border-bottom: 3px solid blue;
  transform: scaleX(25);
}
<input type="text" id="searchInput" name="search">

结果是光标在输入的中间,文本被拉长了

做同样的动画改变宽度而不是缩放输入是可行的,但我很好奇它是否可以通过转换来完成。

最佳答案

这不是实现这种 Material 类型输入文本的正确方法。在 :focus 上使用 background-position,在 input 的底部边框上使用 :valid

您应该使用类似于以下代码段的内容:

input::-webkit-input-placeholder, button {
  transition: all 0.3s ease-in-out;
}

input {
  margin: 40px 25px;
  width: 200px;
  display: block;
  border: none;
  padding: 10px 0;
  border-bottom: solid 1px #1abc9c;
  transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #1abc9c 4%);
  background-position: -200px 0;
  background-size: 200px 100%;
  background-repeat: no-repeat;
  color: #0e6252;
}
input:focus, input:valid {
  box-shadow: none;
  outline: none;
  background-position: 0 0;
}
input:focus::-webkit-input-placeholder, input:valid::-webkit-input-placeholder {
  color: #1abc9c;
  font-size: 11px;
  transform: translateY(-20px);
  visibility: visible !important;
}
  <input placeholder="Username" type="text" required="">

希望这对您有所帮助!

关于CSS:缩放文本字段而不缩放内部文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40658433/

相关文章:

html - 当布局自动时,CSS 宽度属性在 HTML 表格中意味着什么?

css - 侧面带有动态水平线的标题

html - 许多 CSS 选择器在 IE 6 中不受支持。如何解决这个问题?

css - 是什么决定了在浏览器中显示的默认字体?

javascript - CSS 永久显示框

css直 Angular 三 Angular 形的圆 Angular

javascript - 如何将无序列表放置在一个圆圈中?

javascript - 如何仅针对 Vanilla Javascript 中的当前悬停元素

javascript - 专家css选择器请在里面

javascript - 如何防止加载谷歌图表表格 css