- From: Rune Lillesveen via GitHub <sysbot+gh@w3.org>
- Date: Fri, 27 Mar 2020 09:20:50 +0000
- To: public-css-archive@w3.org
Regarding performance cost, it's more similar to indirect adjacent or :nth-* selectors than direct sibling selectors. In Blink, invalidation sounds straightforward, quite similar to how we invalidate for the previously mentioned selectors. :nth-selectors are typically implemented with a cache (at least Blink and Gecko/Servo) to avoid repeated O(n) traversals for multiple siblings. :has-child() would only be done once for a set of siblings, since they can only have a single parent, but if you have multiple :has-child() selectors matching the same element, we would possibly want to avoid multiple passes over the children somehow for :has-child(). The current spec text for :has() does not limit this to the rightmost compound. It's not obvious to me that: "div a:has-child(img) span {}" does not have more performance implications than only allowing :has-child() in the rightmost compound. -- GitHub Notification of comment by lilles Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4903#issuecomment-604898601 using your GitHub account
Received on Friday, 27 March 2020 09:20:53 UTC