Насколько ограничена поддержка уровня 4 в Safari Content Blockers?

Еще в 2015 году, когда были выпущены блокировщики содержимого Safari, было сказано, что они поддерживают выражения селекторов CSS уровня 4.

Однако даже сегодня они не поддерживают, по крайней мере, :has() оператор.

Какие части спецификации только для уровня 4 поддерживает Safari?

Это единственное, что поддерживается (на пост в блоге Webkit):

:matches(), :not(), :nth-child(), а также :nth-last-child()?

1 ответ

Safari 9, выпущенный в 2015 году, поставляется с поддержкой следующих селекторов уровня 4:

  • Нечувствительные к регистру селекторы атрибутов, например [type="text" i]
  • :any-link
  • Уровень 4 :lang()
  • Уровень 4 :not()
  • :matches()
  • Уровень 4 :nth-child(An+B of S) (подразумевается также для :nth-last-child())
  • :placeholder-shown

Начиная с 2018 года, новые селекторы уровня 4 не были добавлены с тех пор. Тем не менее, Safari остается единственным браузером, который поддерживает все, кроме первого и последнего из них.

Нет известных браузерных реализаций :has() и, честно говоря, я бы не выдержал ни одного всплытия в течение следующих нескольких лет. Учитывая, что реализации браузера оптимизированы для сопоставления CSS-селекторов в режиме реального времени, реализация сопоставления моментальных снимков потребует нетривиального объема работы, которая, как кажется, не является той работой, которую поставщики хотят инвестировать в данный момент. РГ все еще изучает свои возможности в отделе производительности.

Другие вопросы по тегам