我想将输入占位符放在输入边框上。
我设法改变颜色而不是位置。
.filter::placeholder {
color: gray;
}
<input type="text" class="filter">
有办法吗?
答案 0 :(得分:3)
你不能通过设置::placeholder
的样式来实现这一点,它只支持有限数量的样式:https://css-tricks.com/almanac/selectors/p/placeholder/#article-header-id-4
但是,您可以添加一个可以达到类似效果的span
。
.filter {
position: relative;
width: 195px;
height: 30px;
border-radius: 5px;
outline: none;
padding: 5px;
border: 1px solid lightblue;
}
.placeholder {
position: absolute;
left: 20px;
top: 0px;
background-color: white;
padding: 0 20px;
}
.filter:focus ~ .placeholder,
.filter:valid ~ .placeholder {
display: none;
}
&#13;
<input required type="text" class="filter" />
<span class="placeholder">First Name..</span>
&#13;
答案 1 :(得分:0)
更加语义正确的方法是使用标签而不是跨度。
.group{
position:relative;
}
.group>label{
padding:0 0.2em;
position:absolute;
top:-0.5em;
left:1em;
background-color:white;
}
.group>input{
padding:0.8em;
border-radius: 0.5em;
border: 2px solid lightblue;
outline:none;
}
&#13;
<form>
<div class="group">
<label>First name</label>
<input type="text" class="">
</div>
</form>
&#13;