Добавьте отступ к заполнителю, когда метка также находится внутри ввода - PullRequest
2 голосов
/ 12 июля 2020

У меня есть вход с меткой внутри. Мне нужно увеличить отступ от метки до заполнителя (разница может быть 3 или 5 пикселей). Что мне делать?

Я уже пробовал добавить padding-bottom в метку-заполнитель, а также padding-top в заполнитель. Это не сработало. Может быть, из-за расположения блоков.

Если бы вы знали, как решить эту проблему, я бы хотел посмотреть.

.form-control {
  width: 320px;  
  font-family: Verdana, sans-serif;
  position: relative;
}

.form-control input {
  display: blocl;
  outline: none;
  width: 100%;
  background: #fff;
  border: 2px solid #fcc;
  padding: 15px;
  font-size: 24px;
  color: #500;
  font-family: inherit;
  cursor: pointer;
}

.form-control label {
  cursor: pointer;
  display: block;
  position: absolute;
  left: 15px;
  top: 18px;
  color: #aaa;
  font-size: 20px;
  -webkit-transition: .2s;
  transition: .2s;
}


.form-control input:valid + label,
.form-control input:focus + label {
  top: 0;
  font-size: 14px;
}
<!DOCTYPE html>
<html>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div class="form-control">
    <input type="text" id="login" required>
    <label for="login">Login</label>
  </div>
</body>
</html>

1 Ответ

1 голос
/ 12 июля 2020

Текст-заполнитель всегда будет находиться в центре поля ввода. Чтобы добиться большего расстояния между меткой и текстом-заполнителем, вам нужно будет добавить значение padding-top, которое больше padding-bottom вашего ввода. Я установил 20px и 10px соответственно, что эффективно увеличило бы расстояние между ч / б меткой и заполнителем на 5px.

.form-control {
  width: 320px;  
  font-family: Verdana, sans-serif;
  position: relative;
}

.form-control input {
  display: block;
  outline: none;
  width: 100%;
  background: #fff;
  border: 2px solid #fcc;
  padding: 20px 15px 10px;
  font-size: 24px;
  color: #500;
  font-family: inherit;
  cursor: pointer;
}

.form-control label {
  cursor: pointer;
  display: block;
  position: absolute;
  left: 15px;
  top: 18px;
  color: #aaa;
  font-size: 20px;
  -webkit-transition: .2s;
  transition: .2s;
}


.form-control input:valid + label,
.form-control input:focus + label {
  top: 0;
  font-size: 14px;
}
<!DOCTYPE html>
<html>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div class="form-control">
    <input type="text" id="login" required>
    <label for="login">Login</label>
  </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...