This probably won't work, you cannot check if @supports is @supports or not only CSS, your example here is completely fine, but there is no direct approach here, for example, you use this:
@supports (@supports) { }
Now it won’t work, maybe for Chrome Canary , it’s okay @supports , but when it goes ahead to check between the brackets it fails, why? He expects a pair of CSS property: value inside the bracket, not some @ rule, it actually checks if any property is valid or not, even if you replace it with @supports (@font-face) . will not work, further down, I explain to you the demo
When you use @supports , it comes with the not keyword to check if a particular style is supported by the browser or not, if so, than applicable, otherwise apply others ...
Example
@supports (-webkit-border-radius: 6px) { div:nth-of-type(1) { color: red; } } @supports not (-moz-border-radius: 6px) { div:nth-of-type(2) { color: blue; } }
Demo (Note: now this only works on chrome canary)
Explanation:
@supports (-webkit-border-radius: 6px) will check in Chrome Canary if the property named -webkit-border-radius supports, if so, than go ahead, change the color of the first div to red , and this will happen because Chrome Canary supports -webkit , while the second one will not work because Chrome does not support the -moz prefix properties, it will be blue because I use not here
@supports not (-moz-border-radius: 6px) ---^---
Hope the FAQ
1) Why aren't any of the styles applied in the browser?
This is because your browser does not yet support @supports , and therefore no one will apply, as the browser simply ignores the @supports rules
From W3C
The @supports rule is a conditional group rule whose condition tests are regardless of whether the user agent supports the CSS property: value pairs