Re: [csswg-drafts] [selectors] Is it intentional that :has(:is()) is different from :has()? (#9422)

@tabatkins I might be confused, but my understanding is that the nesting rules we ended up with end up making my later example desugar to:

```css
#outer #inner {
  @scope #middle {
    & { display: block; }
  }
}
```

Which would effectively desugar to:

```css
:is(#outer #inner) { display: block }
```

Is that not how it is supposed to work? That's how e.g.:

```
#outer #inner {
  #middle & { ...  }
}
```

works now ([link](https://www.software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cstyle%3E%0A%23outer%20%23inner%20%7B%0A%20%20%23middle%20%26%20%7B%20width%3A%20100px%3B%20height%3A%20100px%3B%20background%3A%20green%20%7D%0A%7D%0A%3C%2Fstyle%3E%0A%3Cdiv%20id%3D%22outer%22%3E%0A%20%20%3Cdiv%20id%3D%22middle%22%3E%0A%20%20%20%20%3Cdiv%20id%3D%22inner%22%3E%3C%2Fdiv%3E%0A%20%20%3C%2Fdiv%3E%0A%3C%2Fdiv%3E)). It does match, because it's effectively `#middle :is(#outer #inner)`, not `#middle #outer #inner`. Is there any magic in `@scope` that would make it work some other way?

-- 
GitHub Notification of comment by emilio
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9422#issuecomment-1740082260 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 28 September 2023 22:28:57 UTC