我有一个新的和有趣的要求。当用户开始输入时,占位符不会消失,而是应该保持可见并转移到输入框的右侧。
这甚至可以使用标准的 HTML 占位符吗?我怎样才能做到这一点?
谢谢
我有一个新的和有趣的要求。当用户开始输入时,占位符不会消失,而是应该保持可见并转移到输入框的右侧。
这甚至可以使用标准的 HTML 占位符吗?我怎样才能做到这一点?
谢谢
这对于标准 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;
}
<div class="wrapper">
<input type="text" class="input" placeholder="Test">
<div class="placeholder">Test</div>
</div>
我不确定是否可以在键入时保持占位符可见,但您可以使用此 css 将其向右移动:
CSS
.example:focus::-webkit-input-placeholder {
text-align: right;
opacity: 1;
}
您可以使用transition
它使其平滑对齐。
但是解决您的问题的一种方法是将占位符中的文本写入一个跨度并在用户开始输入时将其翻译为正确(通过使用 JS)