如何在用户键入时保持输入占位符可见

Dav*_*vid 6 html javascript css placeholder

我有一个新的、有趣的要求。当用户开始输入时,占位符不应消失,而应保持可见并移至输入框的右侧。

使用标准 HTML 占位符是否可以实现这一点?我怎样才能实现这个目标?

谢谢

bar*_*sor 4

对于标准 HTML 占位符来说这是不可能的,因为它的本机行为会消失。但是,您可能需要考虑添加一个元素来充当占位符,并添加一个 CSS 选择器来感知用户何时开始键入 ( :placeholder-shown) 并将其向右移动。

可以这样做:

.wrapper {
  position: relative;
  font-family: sans-serif;
  font-size: 14px;
  width: max-content;
}

.placeholder {
  position: absolute;
  right: 4px;
  top: 2px;
  pointer-events: none;
  opacity: .5;
}

.input:placeholder-shown + .placeholder {
  /* if real placeholder is shown - hide fake placeholder */
  opacity: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
  <input type="text" class="input" placeholder="Test">
  <div class="placeholder">Test</div>
</div>
Run Code Online (Sandbox Code Playgroud)