«Родительскому селектору» :has(), скорее всего, запретят быть вложенным
Вот уже почти месяц, как псевдокласс :has()
– больше, чем «родительский селектор» — можно «пощупать» в браузере. Можно подвести первые итоги эксперимента: всё не так страшно, как думали, но не так легко, как хотелось бы.
Сложнее всего оказалось обрабатывать вложенные в :has()
другие функциональные псевдоклассы — :is()
, :where()
, :not()
и сам :has()
. И Антти Койвисто — ведущий разработчик реализации :has()
в WebKit, который и нашел способ добиться приемлемого быстродействия для него — обратился к Рабочей группе CSS с предложением запретить такие комбинации.
Идея вызвала было недовольство, но Джен Симмонс объяснила, что реализовать :has()
совсем без ограничений едва ли возможно, и сейчас задача — выяснить, какими редкими применениями можно пожертвовать, чтобы поскорее сделать его доступным для более важных случаев. В итоге в WebKit запретили вкладывать :has()
друг в друга, но разрешили остальные псевдоклассы: быстродействие таких комбинаций «не оптимально, но с этим можно жить». Код WebKit уже подправили (но спецификацию — пока нет).
На мой взгляд, это отличный компромисс. Если это ограничение поможет быстрее внедрить :has()
в браузеры, есть шанс, что с него снимут пометку «необязательный», и его повсеместная поддержка гораздо важнее экзотических случаев. Согласны?
P.S. Это тоже может быть интересно:
Если у вас нету макбука то «пощупать» :has() можно только в статьях яблоководов… чёт разработчики Chrome не спешат внедрять, а жаль.
Разработчики Chrome стараются, как могут. Но в реальном времени отслеживать, что и в каком состоянии внутри элемента и вокруг него — действительно нетривиальная задача. И «яблочники» молодцы, что нашли рабочий подход и опробовали его. Может, теперь, с разумным ограничением этой сложности (и примером перед глазами), и у Хрома работа пойдет поживее… по крайней мере, хочется надеяться:)
Привет друг!
В нашем сообществе уже почти 2 тысячи человек! Всего за пол месяца мы набрали 400 новых подписчиков и удержали, а это значит, что контент у нас по настоящему годный.
У нас ты сам увидишь :
1. Хорошие статьи для твоего обучения в мире фрондента;
2. Много разных задач и решения их. А самому сообразительному даётся достижение.
3. Первый поток курса (конечно, если ты ещё не успел зайти на него, ведь он ограничен в рамках людей).
Заходи к нам ТЛГ deveveloper_house_jun_front