如何使用CSS的@supports标记来检测浏览器的兼容情况

这篇文章主要介绍了如何使用CSS的@supports标记来检测浏览器的兼容情况,在开发过程应该对大家很有帮助,小编结合实例代码给大家介绍的非常详细,需要的朋友可以参考下

CSS @supports标记在CSS代码里跟@media查询语句的语法相似:

CSS Code复制内容到剪贴板
  1. @supports(prop:value){
  2. /*各种样式*/
  3. }

CSS @supports允许程序员用多种不同的方法来探测当前浏览器是否支持某项CSS样式特征。

基本属性检测
你可以执行对基本属性和属性值的检测:

CSS Code复制内容到剪贴板
  1. @supports(display:flex){
  2. div{display:flex;}
  3. }

这是@supports标记最基本的用法。

not关键字
@supports标记可以和‘not’关键字组合,用来应对不支持的情况:

CSS Code复制内容到剪贴板
  1. @supportsnot(display:flex){
  2. div{float:left;}/*替换样式*/
  3. }

多检测及条件检测

CSS Code复制内容到剪贴板
  1. /*or*/
  2. @supports(display:-webkit-flex)or
  3. (display:-moz-flex)or
  4. (display:flex){
  5. /*usestyleshere*/
  6. }
  7. /*and*/
  8. @supports(display:flex)and(-webkit-appearance:caret){
  9. /*somethingcrazyhere*/
  10. }
  11. /*andandor*/
  12. @supports((display:-webkit-flex)or
  13. (display:-moz-flex)or
  14. (display:flex))and(-webkit-appearance:caret){
  15. /*usestyleshere*/
  16. }

Javascript CSS.supports()
在Javascript中通过使用window.CSS.supports方法来对CSS @supports进行检测,规范中提供了两个方法,一个方法可以接收两个参数boolValue = CSS.supports(propertyName, value);另一个可以接收一个字符串(A DOMString containing the condition to check),boolValue = CSS.supports(supportCondition);具体使用看下例:

JavaScript Code复制内容到剪贴板
  1. //测试环境,Chrome:34.0.1847.131m
  2. varres01=CSS.supports("text-decoration-style","blink");
  3. //Outputs:false
  4. console.log(res01);
  5. varres02=CSS.supports("display","flex");
  6. //Outputs:true
  7. console.log(res02);
  8. varres03=CSS.supports("(transform-origin:5%5%)");
  9. //Outputs:false
  10. console.log(res03);
  11. varres04=CSS.supports("(transform-style:preserve)or(-moz-transform-style:preserve)or"+
  12. "(-o-transform-style:preserve)or(-webkit-transform-style:preserve)");
  13. //Outputs:false
  14. console.log(res04);

@supports的使用场景

大多数情况,@supports是用来支持老式浏览器,并在有可能的情况下,利用现代浏览器的新特征来提高用户体验。@supports的一个最重要的使用场景是页面布局。很多现代浏览器都提供了对flexbox网页布局的支持,在这种还有很多浏览器不支持的情况下,你的代码可以写成这样:

CSS Code复制内容到剪贴板
  1. section{
  2. float:left;
  3. }
  4. @supports(display:-webkit-flex)or
  5. (display:-moz-flex)or
  6. (display:flex){
  7. section{
  8. display:-webkit-flex;
  9. display:-moz-flex;
  10. display:flex;
  11. float:none;
  12. }
  13. }

相信随着程序员对这种新的@supports功能的使用和体验,更多的更好的使用场景会不断的出现。

本文如何使用CSS的@supports标记来检测浏览器的兼容情况到此结束。你给我一滴眼泪,我就看到了你心中全部的海洋。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

CSS如何使用Flex和Grid布局如何实现3D骰子

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例