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