Разница между псевдоклассами -moz-focus-inner и -moz-focusring - PullRequest
0 голосов
/ 10 апреля 2019

Мне кажется, что псевдоклассы -moz-focus-inner и -moz-focusring имеют одну и ту же задачу.

Хотя я часто вижу свойство -moz-focus-inner в примерах, онопохоже, не влияет на форматирование элементов формы, в отличие от -moz-focusring (по крайней мере, в Firefox 66 / Win).

Может кто-нибудь объяснить мне, в чем разница между этими двумя свойствами, и еслии когда мне нужно -moz-focus-inner?

1 Ответ

0 голосов
/ 10 апреля 2019

-moz-focusring - это нестандартное расширение псевдокласса только для Mozilla, которое не следует использовать в производстве, поскольку оно не соответствует стандартам.Mozilla предполагает, что некоторые разработчики использовали его, чтобы различать фокусировку пользователей с помощью щелчка мыши и фокусировку с помощью вкладок клавиатуры.focusring еще не определено ни в одной спецификации.Он совпадает только в том случае, если элемент уже имеет фокус, и разработчик определяет, что вокруг него должно быть нарисовано кольцо фокусировки.

-moz-focus-inner является активным слоем (их значение focus-inner)это добавляет рамку к сфокусированным кнопкам, но не заменяет контур фокуса по умолчанию, а добавляет к нему (в виде внутренней пунктирной черной рамки).Это, как правило, нежелательное поведение, которое можно устранить с помощью, например, normalize.css или просто написав собственное правило:

button::-moz-focus-inner {
  border: 0;
}

Почему Mozilla реализовала -moz-focus-inner таким образом, что раздражаетмного разработчиков?Я полагаю, это связано с тем, что это проект с долгой историей вкладов и экспериментов.Но главное отличие, с точки зрения разработки, заключается в том, что вам, как правило, нужно «разобраться» с -moz-focus-inner каким-то образом, возможно, исключив его с помощью пользовательского правила CSS (если вы не хотите дополнительную версию FF).этого визуального индикатора фокуса), тогда как -moz-focusring представляет нестандартный псевдо-класс, обсуждаемый Рабочей группой, который может стать частью спецификации в будущем (селекторы 4 или 5).

Источники

  1. https://developer.mozilla.org/en-US/docs/Web/CSS/:-moz-focusring
  2. https://github.com/necolas/normalize.css/issues/393
  3. Как удалить пунктирный контур Firefox на КНОПКАХ, а также ссылки?
...