我有一个带占位符的文本输入。一旦您单击输入,占位符就会向上移动并保留为标题。问题是当我开始输入时,标题消失了。
.material-input-login {
margin: 8px 10px;
width: 200px;
/* display: block; */
border: none;
padding: 10px 0;
border-bottom: solid 1px #fff;
-webkit-transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 96%, #fff 4%);
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #fff 4%);
background-position: -200px 0;
background-size: 200px 100%;
background-repeat: no-repeat;
color: #fff;
}
.material-input-login:focus, .material-input-login:valid {
box-shadow: none;
outline: none;
background-position: 0 0;
}
.material-input-login:focus::-webkit-input-placeholder, .material-input-login:valid::-webkit-input-placeholder {
color: #fff;
font-size: 11px;
-webkit-transform: translateY(-20px);
transform: translateY(-20px);
visibility: visible !important;
}
.material-input-login::-webkit-input-placeholder, .material-button {
-webkit-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
<input id="searchBox" type="search" placeholder="Search" class="material-input-login" required="">
最佳答案
问题是占位符会在您开始输入时消失——我不知道有任何 CSS 技巧可以让您避免这种行为。
我尝试制作一个使用输入标签的替代方案:
https://jsfiddle.net/zug5j8m5/
CSS:
body {
background: #333;
}
.material-input-login {
margin: 0 10px 8px;
width: 200px;
border: none;
padding: 10px 0;
border-bottom: solid 1px #fff;
-webkit-transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 96%, #fff 4%);
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #fff 4%);
background-position: -200px 0;
background-size: 200px 100%;
background-repeat: no-repeat;
color: #fff;
}
.material-input-login:focus, .material-input-login:valid {
box-shadow: none;
outline: none;
background-position: 0 0;
}
.label {
color: #fff;
display: block;
font-family: sans-serif;
font-size: 13px;
margin: 0 10px;
position: absolute;
-webkit-transform: translateY(-35px);
transform: translateY(-35px);
-webkit-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
.material-input-login:focus+.label {
color: #fff;
font-size: 11px;
-webkit-transform: translateY(-50px);
transform: translateY(-50px);
display:block !important;
}
HTML:
<input id="searchBox" type="search" title="Search" class="material-input-login" required="">
<label for="searchBox" class="label">Search</label>
关于css - 输入标题消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219015/