What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Use CSS @supports to apply styles only when a browser accepts the CSS feature you test. Put a dependable fallback in ordinary CSS first, then add the enhanced styles inside a feature query. A successful query confirms that the browser accepts the tested syntax; it does not guarantee the feature works correctly in every situation.
Check support for a CSS property and value
A declaration query checks a specific property-value pair. Its basic syntax is a parenthesized declaration followed by a block of CSS:
.card {
display: block;
}
@supports (display: grid) {
.card-list {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
}
The first rule is the baseline. Browsers that accept display: grid also receive the enhanced layout. Browsers that do not accept it ignore the query block and retain the baseline.
Test the exact value your design needs. A check that a browser accepts a property with one value does not prove it accepts a different, newer value of that property.
#1 Best Overall
Combine requirements and alternatives
Require every feature with and
Use and when the enhanced style depends on all tested declarations being supported:
@supports (display: grid) and (gap: 1rem) {
.card-list {
display: grid;
gap: 1rem;
}
}
Accept any supported option with or
Use or when either declaration is sufficient, such as a standard or prefixed property:
Rank #2
@supports (text-stroke: 1px) or (-webkit-text-stroke: 1px) {
.outlined-text {
-webkit-text-stroke: 1px;
text-stroke: 1px;
}
}
Target browsers that fail a check with not
Use not for a special treatment when a condition is unsupported. Keep the ordinary baseline outside the query where possible, so it remains available to every browser:
@supports not (display: grid) {
.card-list {
/* Styles specifically for browsers without grid support */
}
}
Use parentheses to group expressions when combining conditions. For the full syntax and examples, see the MDN reference for the @supports at-rule.
Recommended Free Tools
Check selector syntax instead of a declaration
To test whether a browser accepts a selector, use the selector() form rather than a property-value query:
@supports selector(:has(a)) {
.card:has(a) {
border-color: rebeccapurple;
}
}
This checks whether the selector syntax is accepted. The MDN reference also documents feature queries for at-rules and font technology or format.
Rank #4
Choose a fallback that remains useful
- Use a baseline first: write a layout or style that remains usable without the newer feature, then enhance it inside
@supports. - Use a feature query when it changes the fallback decision: browsers generally ignore CSS they do not recognize, so every new declaration does not need a query.
- Use
@supports not (...)selectively: it can add a treatment for browsers missing a feature, but should not replace a sound baseline. - Test real behavior for high-impact features: a positive query means the browser accepts the tested syntax, not that its implementation is bug-free or complete.
MDN describes feature queries as a tool for progressively enhancing a site in its guide to using feature queries.
Check support from JavaScript
JavaScript can check CSS support conditions with CSS.supports(). It is useful when application logic needs to know whether a declaration or condition is accepted; for browser-version support details, consult the API’s dedicated compatibility information.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Best Value
Common mistakes and fixes
- Testing the wrong value: check the exact property-value pair your styles rely on, not merely another value of the same property.
- Checking a selector as if it were a declaration: use
@supports selector(...)for selector syntax. - Expecting a positive result to prove correct rendering: feature queries test syntax support, not every behavioral detail. Verify the outcome in the browsers and devices that matter.
- Putting the only usable style inside the query: move a functional baseline outside it, then place dependent enhancements inside.
Or skip the browser setup
If you need screenshots of pages in a browser without setting up your own capture flow, ScreenshotNeo provides a screenshot API and MCP server. For example, one GET request can capture a page as an image:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for options. Cookie banners are accepted and removed before capture, along with supported newsletter popups and chat widgets; these cleanup steps can be turned off. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server offers AI-agent tools for taking screenshots, getting page information and capturing PDFs. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.
Sign up free for 1,000 screenshots a month, with no card required.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →




