Не работает псевдоэлемент ::after?

Когда поле валидное должен появляться + но он не появляется
<div class="popup-subscribe__box popup-subscribe__box-name">
  <label class="popup-subscribe__label" for="popup-subscribe__name">Enter your name</label>
  <input class="popup-subscribe__input" id="popup-subscribe__name" type="text" name="Name" placeholder="Anastasiia" required>
</div>

.popup-subscribe__box {
  max-width: 460px;
  width: 100%;
  margin: 0 auto 32px;
  position: relative;
}

.popup-subscribe__label {
  font-family: "Gotham Pro Regular", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 17px;
  line-height: 130%;
  color: #171717;
  display: inline-block;
  margin-bottom: 9px;
}

.popup-subscribe__input {
  max-width: 460px;
  width: 100%;
  background: #F1F4F8;
  border-radius: 12px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 16px 0 16px 24px;
  border: 1px solid transparent;
  -webkit-transition: all ease-in-out 0.3s;
  transition: all ease-in-out 0.3s;
  font-family: "Gotham Pro Regular", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 17px;
  line-height: 130%;
  color: #070033;
}

.popup-subscribe__input::placeholder {
  font-family: "Gotham Pro Regular", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 17px;
  line-height: 130%;
  color: #8F8F8F;
}

.popup-subscribe__input:hover {
  border: 1px solid #838099;
}
.popup-subscribe__input:focus {
  border: 1px solid #800080;
  outline: none;
}
.popup-subscribe__input:valid {
  border: 1px solid #1749B3;
}

.popup-subscribe__box::after {
    content: "+";
    position: absolute;
    top: 50px;
    right: 17px;
    transition: all ease-in 0.3s;
    transform: scale(0);
    background-color: #1ED760;
}
.popup-subscribe__input:valid.popup-subscribe__box-name::after {
    transform: scale(1);
}
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
yulich81
@yulich81
Люблю CSS
Вы обращаетесь к родительскому элементу. Попробуйте добавить span и применить нужные свойства к нему.

<div class="popup-subscribe__box popup-subscribe__box-name">
  <label class="popup-subscribe__label" for="popup-subscribe__name">Enter your name</label>
  <input class="popup-subscribe__input" id="popup-subscribe__name" type="text" name="Name" placeholder="Anastasiia" required>
  <span></span>
</div>


span {
  position: relative;
}

span::after {
    content: "+";
    position: absolute;
    top: 0;
    right: 17px;
    transition: all ease-in 0.3s;
    transform: scale(0);
    background-color: #1ED760;
}

.popup-subscribe__input:valid + span::after {
    transform: scale(1);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Dima_So
@Dima_So
Experientia est optima magistra
У input не может быть before и after
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект