使用 @supports 在 CSS 中进行特征检测

Css中的一条新规则@Support允许你很容易地检测访问者的浏览器中是否有某个css功能可用。这允许您仅为受支持的浏览器使用这些功能,或仅为不受支持的浏览器定义特定规则,并让其他浏览器完全忽略它们。@Support是一种纯粹的css方式来取代像现代.)这样的工具@Supports允许您测试功能支持和不支持功能:

1@supports (column-count: 3) {
2  div { column-count: 3; }
3}

不支持

以下是在不支持某项功能时测试和应用特定规则的方法:

1@supports not (display: flex) {
2  .sidebar { float: left; }
3}

使用与/或运算符链接多个css功能:

 1@supports (display: flex)
 2or (display: -webkit-box)
 3or (display: -webkit-flex)
 4or (display: -ms-flexbox) {
 5 .menu {
 6  display: -webkit-box;
 7  display: -webkit-flex;
 8  display: -ms-flexbox;
 9  display: flex;
10 }
11}

一个重要的警告

现在@Supports有一个主要的警告:@Supports本身并不是所有人都支持的。它在Internet Explorer中根本不受支持,甚至在版本11中也不受支持,而且从V9.2开始只在iOS的Safari中受支持。有关更多详细信息,请参阅@Support我可以使用page吗?

因此,继续使用Modernizr一段时间可能更实际,直到大多数IE用户切换到Edge。

@Support还有一个非常方便的JAVASCRIPT API,可以用来检测JS中的特性。

Published At
Categories with 技术
Tagged with
comments powered by Disqus