Почему при наведении на блок с установленным значением непрозрачности (opacity) равным 0 не происходит его изменения на значение равное 1 при наведении?

Как можно настроить CSS таким образом, чтобы подсказка в виде текста ошибки выводилась при взаимодействии с input, а не только при наведении на него, несмотря на заданные стили в SCSS? В примере представлена форма "Заказать ремонт", доступ к которой можно получить по ссылке: https://gidroprofi.ru/contacts. Ниже приведен пример SCSS для поля "Ваше имя".
  • 13 мая 2024 г. 11:21
Ответы на вопрос 1
1. При наведении на блок с установленным значением непрозрачности (opacity) равным 0 не происходит его изменения на значение равное 1 при наведении, потому что элемент с opacity: 0 полностью прозрачен и не видим для пользователя, поэтому события hover на него не срабатывают.

2. Для того чтобы подсказка в виде текста ошибки выводилась при взаимодействии с input, а не только при наведении на него, необходимо использовать псевдокласс :focus. Этот псевдокласс применяется к элементу, когда он находится в фокусе (когда на него кликнули и он активирован).

Пример SCSS для поля "Ваше имя":

.input-error {
  position: relative;
  
  input {
    border: 1px solid #ff0000;
  }
  
  .error-message {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #ffdddd;
    padding: 5px;
    border: 1px solid #ff0000;
    color: #ff0000;
  }
  
  input:focus + .error-message {
    display: block;
  }
} 

В этом SCSS стилизация элемента .error-message применяется только когда инпут находится в фокусе.
Похожие вопросы