javascript - 是否可以删除新字符下输入文本字段的底部边框?

标签 javascript html css

我刚收到这个视觉设计:

enter image description here

CLG是一个label标签,而line是一个input type=tel 忽略紫色覆盖层...

当用户输入新数字时,设计师要求我移除边框。

这可能吗?

最佳答案

这绝对是可能的,但是它包括

  • JavaScript(用于检查当前输入大小)
  • Flexbox(用于自动缩小边框)

这个想法基本上是用 :after 模仿边框伪元素并将其缩小到 <label> 的剩余宽度.

// https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/
[].forEach.call(document.querySelectorAll('input'), function(element) {
  element.addEventListener('input', function() {
    element.size = element.value.length;
  });
});
label {
  display: flex;
  align-items: stretch;
  font-weight: bold;
}
label:after {
  content: '';
  display: block;
  width: 100%;
  border-bottom: 1px solid gray;
}
input {
  display: block;
  border: none;
}
<form>
  <label>CLG <input type="tel" size="1"></label>
</form>

关于javascript - 是否可以删除新字符下输入文本字段的底部边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31671336/

相关文章:

javascript - 如何从 IE 中的提交按钮和超链接中删除虚线边框

css - 将 css 和 javascript 文件添加到 NetSuite 的所有页面

javascript - 如何让 DIV 跟随转换

html - 960 网格容器创建头部空间

javascript - JavaScript 中的构建器设计模式

javascript - JS Keycode 与 Safari mobile 是一样的

javascript - 使用 phonegap 检查移动应用程序中的互联网连接

javascript - 为什么 clearInterval 只工作一次?

Javascript 作用域和闭包,变量保持其值

javascript - 将 AJAX 加载程序附加到各个链接上的菜单/导航栏