Странная красная коробка-тень на входе в firefox - PullRequest
0 голосов
/ 01 декабря 2018

Итак, я тестировал свое приложение в разных браузерах, чтобы убедиться, что все работает, и когда я попал в Firefox, я был удивлен, что один из моих входов окружен большой красной рамкой-тенью.

Filled input with red border/box-shadow enter image description here

Но что еще удивительнее в том, что красная тень исчезает, если вход пуст

Empty input

После исследования я выяснил, что ввод имеет тип электронной почты, а не текст, как остальные входные данные.

The input HTML

Причина, по которой это стало для меня сюрпризом, заключается в том, что ни один из других браузеров, на которых я тестировал, ничего не делал для ввода (EVEN EDGE !!!), только в Chrome, когда я наводил курсор на ввод, он отображал мне сообщение:1025 *.

Очевидное исправление здесь состоит в том, чтобы изменить тип ввода на текст, но мои входы не находятся внутри тега формы, а вывод выбирается JS при нажатии кнопки.поэтому при такой настройке я не вижу никаких ошибок или, как в Chrome, появляется сообщение об ошибке вАтрибут itle при наведении.

Из документов MDN :

Псевдоклассы: valid и: invalid CSS автоматически применяются соответствующим образом для визуального обозначения того,текущим значением поля является действительный адрес электронной почты или нет.

Браузеры уже добавляют псевдоклассы в соответствии с состоянием ввода (действительный / недействительный) и позволяют разработчикамлегко реализовать стилизацию ошибок, как они считают нужным.

Почему Firefox настолько груб, что применяет стилизацию к ошибкам на входах, не сообщая об этом?

Я знаю, что поУстанавливая тип электронной почты, мы в основном говорим браузеру: «Эй, проверьте, чтобы этот ввод был действительным для меня, не так ли?»но применение псевдоклассов и применение красной большой рамки вокруг ввода - это две разные вещи.

Не лучше ли добавить стиль ТОЛЬКО, если вход находится внутри тега формы?после того, как все файлы с этим стилем называются Forms.css, имеет смысл сделать это таким образом, вместо того, чтобы применять его к входам, которые явно обрабатываются вне HTML.

Как я могубыть уверенным, что это не произойдет в будущем?

Должен ли я начать с добавления стиля в псевдокласс: invalid?потому что добавление просто box-shadow: ни один стиль не сокращает его, я должен быть более конкретным, или есть какой-то другой способ?

...