css supports

疏雨萧萧千行泪 6个月前 192浏览 0评论

说到 CSS Supports,它是一个非常有用的特性,可以让我们写更加灵活的 CSS 代码。在 CSS 中,支持条件语句的功能十分有限,但 CSS Supports 就可以解决这个问题。它可以用来检查浏览器是否支持某些特定的 CSS 属性,如果支持,就可以执行对应的 CSS 规则,否则就执行后备规则。

/* 检查浏览器是否支持 display: flex */
@supports (display: flex) {
  body {
    display: flex;
  }
}

/* 如果不支持 display: flex,就使用 float 属性 */
@supports not (display: flex) {
  .box {
    float: left;
    margin-right: 10px;
  }
}

这里的 @supports 就是关键字,它接收一个括号内的条件,判断当前浏览器是否支持括号中的属性值。如果支持,就执行花括号中的 CSS 规则,否则执行后备规则。

可以通过多层嵌套的 @supports 规则来创建更加复杂的条件测试。下面是一个例子:

/* 检测浏览器是否支持 display: grid 和 grid-template-columns 属性 */
@supports (display: grid) {
  @supports (grid-template-columns: repeat(2, 1fr)) {
    #my-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
    }
  }
}

/* 如果不支持 display: grid 或者 grid-template-columns 属性,就使用 float 和 width */
@supports not (display: grid) or not (grid-template-columns: repeat(2, 1fr)) {
  #my-grid {
    float: left;
    width: 50%;
  }
}

因为浏览器都是根据对应的 CSS 规范来解析和渲染 HTML 页面的,所以 CSS Supports 的使用十分广泛。可以通过它来检测浏览器是否支持某些 CSS 属性,从而写出更加健壮的 CSS 代码。

上一篇 css sub大小
下一篇 css svg path