gpt4 book ai didi

html - 占位符的模拟

转载 作者:太空宇宙 更新时间:2023-11-04 14:54:53 24 4
gpt4 key购买 nike

我有一个我不想碰的 Wordpress 插件,所以我希望我的目标可以只用 CSS 来实现。我在 Chrome 开发者工具中摆弄(没有双关语意)CSS,但结果总是一团糟。

我想要的是位于输入字段顶部的标签。 “在顶部”表示 Z 轴而不是 Y 轴。下面是 HTML 结构。提前感谢您的思考。

<p>
<label>Name<br>
<span>
<input type="text" name="your-name" value="" size="40">
</span>
</label>
</p>

最佳答案

通过小的标记更改和脚本,您可以做到这一点

该脚本只是将用户值附加到其值属性,因此可以使用 CSS 对其进行样式设置

p label {
position: relative;
}
p label input {
margin-top: 10px;
}
p label input[required] + span::after {
content: ' *';
color: red;
}
p label span {
position: absolute;
top: 2px;
left: 5px;
pointer-events: none;
transition: top .5s;
}
p label input:not([value=""]) + span,
p label input:focus + span {
top: -20px;
}
<p>
<label>
<input oninput="this.setAttribute('value', this.value)" type="text" name="your-name" value="" size="40" required>
<span>Name</span>
</label>
</p>


自从更改 HTML5 input's placeholder with CSS是一个热门话题,这里有更多的选择,具有更简单、更可重用的标记结构

.placeholder {
position: relative; padding-top: 15px;
}
.placeholder label {
position: absolute; top: 17px; left: 5px;
pointer-events: none; transition: top .5s;
}
.placeholder input[required] + label::after {
content: ' *'; color: red;
}
.placeholder input:not([value=""]) + label,
.placeholder input:focus + label {
top: -5px;
}
<div class="placeholder">
<input oninput="this.setAttribute('value', this.value)" type="text" name="name" value="" required>
<label>Name</label>
</div>


由于脚本非常小,所以我将它内联应用,尽管当然可以使用外部事件处理程序添加相同的行为,例如这样,并针对多个 input

window.addEventListener('load', function() {
var placeholders = document.querySelectorAll('.placeholder input');
for (var i = 0; i < placeholders.length; i++) {
placeholders[i].addEventListener('input', function() {
this.setAttribute('value', this.value);
})
}
})
.placeholder {
position: relative; padding-top: 15px;
}
.placeholder + .placeholder {
margin-top: 10px;
}
.placeholder label {
position: absolute; top: 17px; left: 5px;
pointer-events: none; transition: top .5s;
}
.placeholder input[required] + label::after {
content: ' *'; color: red;
}
.placeholder input:not([value=""]) + label,
.placeholder input:focus + label {
top: -5px;
}
<div class="placeholder">
<input type="text" name="name" value="" required>
<label>Name</label>
</div>
<div class="placeholder">
<input type="text" name="email" value="" required>
<label>Email</label>
</div>
<div class="placeholder">
<input type="text" name="address" value="">
<label>Address</label>
</div>

关于html - 占位符的模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com