Deprecate reference combinators
nex3 opened this issue · 3 comments
These should be on our radar, although we may want to wait until they're implemented somewhere before we support them. See Selectors Level 4.
Here's a page tracking browser support.
Tasks:
- Deprecate existing behavior in
stable
. - Remove behavior from
master
.
I don't think this is here to stay; as the issue says it's a lot easier to implement as a functional pseudoclass. The syntax is really ugly, too.
quickly looking in Chrome (latest and Canary), Firefox (latest and Aurora) and Opera (latest(presto)). There seems to be varied support for level 4 selectors now. I've found this test (wrongly named as CSS4) here -
http://css4-selectors.com/browser-selector-test/
Chrome -
current -
Indeterminate-value pseudo-class (E:indeterminate)
Default option pseudo-class (E:default)
Validity pseudo-class (E:in-range)
Validity pseudo-class (E:out-of-range)
Optionality pseudo-class (E:required)
Optionality pseudo-class (E:optional)
Mutability pseudo-class (E:read-only)
Mutability pseudo-class (E:read-write)
canary -
Indeterminate-value pseudo-class (E:indeterminate)
Default option pseudo-class (E:default)
Validity pseudo-class (E:in-range)
Validity pseudo-class (E:out-of-range)
Optionality pseudo-class (E:required)
Optionality pseudo-class (E:optional)
Mutability pseudo-class (E:read-only)
Mutability pseudo-class (E:read-write)
Firefox -
current -
Indeterminate-value pseudo-class (E:indeterminate)
Default option pseudo-class (E:default)
Validity pseudo-class (E:in-range)
Validity pseudo-class (E:out-of-range)
Optionality pseudo-class (E:required)
Optionality pseudo-class (E:optional)
aurora -
Indeterminate-value pseudo-class (E:indeterminate)
Default option pseudo-class (E:default)
Validity pseudo-class (E:in-range)
Validity pseudo-class (E:out-of-range)
Optionality pseudo-class (E:required)
Optionality pseudo-class (E:optional)
Opera -
current -
Indeterminate-value pseudo-class (E:indeterminate)
Default option pseudo-class (E:default)
Validity pseudo-class (E:in-range)
Validity pseudo-class (E:out-of-range)
Optionality pseudo-class (E:required)
Optionality pseudo-class (E:optional)
Mutability pseudo-class (E:read-only)
Mutability pseudo-class (E:read-write)
Total list of level 4 selectors tested -
Negation pseudo-class (E:not(s1, s2))
Matches-any pseudo-class (E:matches(s1, s2))
Local link pseudo-class (E:local-link)
Time-dimensional pseudo-class (E:current)
Indeterminate-value pseudo-class (E:indeterminate)
Default option pseudo-class (E:default)
Validity pseudo-class (E:in-range)
Validity pseudo-class (E:out-of-range)
Optionality pseudo-class (E:required)
Optionality pseudo-class (E:optional)
Mutability pseudo-class (E:read-only)
Mutability pseudo-class (E:read-write)
Structural pseudo-class (E:nth-match(n of selector))
Grid-Structural pseudo-class (E:column(selector))
Grid-Structural pseudo-class (E:nth-column(n))
Grid-Structural pseudo-class (E:nth-last-column(n))
Attribute case-sensitivity (E[foo='bar' i])
Reference combination (E /foo/ F)
Subject of a selector with Child combinator (E! > F)
Hyperlink pseudo-class (E:any-link)
Dir pseudo-class (E:dir(*))
Just thought I'd do a little testing to see what browsers are supporting what and where to keep the issue up to date a little.
(up to date browser == latest download as of time of posting this)
Sass has supported this since afdf0e8, but it's since been removed from the specification so we should deprecate it.