CSS @supports 规则
定义和用法
CSS @supports
规则用于测试浏览器是否支持某个 CSS 特性,并在不支持时定义备用样式。
实例
如果浏览器支持 display: grid,则应用 @supports
规则内的 CSS。如果不支持,则应用 @supports
规则外的 .container 类样式:
/* 如果浏览器不支持 display: grid,则使用此 CSS */ .container { display: table; width: 90%; background-color: #2196F3; padding: 10px; } /* 如果浏览器支持 display: grid,则使用此 CSS */ @supports (display: grid) { .container { display: grid; grid: auto; grid-gap: 10px; background-color: #2196F3; padding: 10px; } }
CSS 语法
@supports (supports-condition) { /* 如果条件为真,则应用此 CSS */ }
属性值
值 | 描述 |
---|---|
supports-condition |
定义以名称-值对(property: value)或 function() 语法表示的条件。 条件可以通过 and、or 或 not 组合。 |
selector() |
是 function() 语法。检查浏览器是否支持指定的选择器语法。 例如,@supports selector(h2 > p) 如果浏览器支持子组合器,则返回 true 并应用 CSS 样式。 |
font-tech() |
是 function() 语法。检查浏览器是否支持指定的字体技术。 例如,@supports font-tech(color-svg) 如果浏览器支持 SVG 多色表格,则返回 true 并应用 CSS 样式。 |
font-format() |
是 function() 语法。检查浏览器是否支持指定的字体格式。 例如,@supports font-format(woff) 如果浏览器支持 WOFF 1.0,则返回 true 并应用 CSS 样式。 |
浏览器支持
表格中的数字表示首个完全支持该 @ 规则的浏览器版本。
@ 规则 | Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|---|
@supports | 28 | 12 | 22 | 9 | 12.1 |
font-format() | 108 | 108 | 106 | 17 | 94 |
font-tech() | 108 | 108 | 106 | 17 | 94 |
selector() | 83 | 83 | 69 | 14.1 | 69 |