@supports是CSS3新引入的规则之一,主要用于检测当前浏览器是否支持某个CSS属性并加载具体样式,即css的特性检测。
我们要知道,在前端技术日新月异的今天,各种新技术新属性层出不穷;而CSS层面亦不例外,css的一些新属性能极大提升用户体验以及减少开发者的工作量,并且当下的前端氛围是如此的:
1、很多实验性的功能未成为标准就被大量的使用;
2、需要兼容多种终端,多种浏览器,而各种浏览器对某一新功能的实现效果天差地别;
在这种背景下,又想使用新的技术给用户提供更好的体验,又想做好回退机制保证低版本终端用户的基本体验,CSS特性检测就应运而生了。
CSS特性检测就是针对不同浏览器终端,通过条件判断当前浏览器对某个特性是否支持。运用CSS特性检测,我们可以在支持当前特性的浏览器环境下使用新的技术,而不支持的则做出某些回退机制。【相关视频教程推荐:CSS3教程】
CSS@supports可以通过CSS语法来实现特性检测,并在内部CSS区块中写入条件判断语句:如果特性检测通过则希望实现的CSS语句,如果特性检测不通过则希望实现的CSS语句。
基本语法:
//如果通过了条件
@supports(运行条件){/*应用规则---想要实现的css语句*/}
//如果没有通过条件
@supports not(运行的条件){/*应用规则---想要实现的css语句*/}
例:
/*仅当支持'display:flex'时才在'@supports'规则中应用规则。*/
@supports(display:flex){
.el{
display:flex;
align-items:middle;
}
}
详细的介绍使用可以参考:@supports - CSS(层叠样式表) | MDN