【发布时间】:2018-01-15 10:19:05
【问题描述】:
我想在输入边框上放置输入占位符。
我设法改变颜色而不是位置。
.filter::placeholder {
color: gray;
}
<input type="text" class="filter">
有办法吗?
【问题讨论】:
-
看看这个希望对你有用stackoverflow.com/questions/42233488/…
我想在输入边框上放置输入占位符。
我设法改变颜色而不是位置。
.filter::placeholder {
color: gray;
}
<input type="text" class="filter">
有办法吗?
【问题讨论】:
您不能通过设置::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;
}
<input required type="text" class="filter" />
<span class="placeholder">First Name..</span>
【讨论】:
<label> 更适合这个
required 属性和:valid 选择器来实现,如第一条评论的链接中所述对问题
在语义上更正确的方法是使用标签而不是跨度。
.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;
}
<form>
<div class="group">
<label>First name</label>
<input type="text" class="">
</div>
</form>
【讨论】: