css - 如何更改输入占位符的位置

时间:2018-01-15 10:19:05

标签: html css

我想将输入占位符放在输入边框上。

enter image description here

我设法改变颜色而不是位置。

.filter::placeholder {
   color: gray;
}
<input type="text" class="filter">

有办法吗?

2 个答案:

答案 0 :(得分:3)

你不能通过设置::placeholder的样式来实现这一点,它只支持有限数量的样式:https://css-tricks.com/almanac/selectors/p/placeholder/#article-header-id-4

但是,您可以添加一个可以达到类似效果的span

&#13;
&#13;
.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;
&#13;
&#13;

答案 1 :(得分:0)

更加语义正确的方法是使用标签而不是跨度。

&#13;
&#13;
.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;
&#13;
&#13;