• css3条件判断_@supports的用法 以及 Window.CSS.supports()的使用


    为了判断浏览器是否支持css3的一些新属性样式,当不兼容该样式的时候,我们可以更优雅的降级处理。这就需要使用到css3的条件判断功能:在css中支持@supports标记、或者在js中使用CSS.supports函数,来检测浏览器是否支持css3的新属性。下面就来看看如何实现的!

    CSS @supports标记:

    语法:

    @supports (rule)[operator (rule)]* { sRules }
    

      

    说明:

    rule: 指定一条具体的CSS规则,必须使用括号包裹。
    operator: 使用or | and | not等操作符指定多条规则。

     

    1、基本用法:  

    @supports ( display: flex ) {
        body {
            display: flex;
        }
        #main {
            flex: auto;
        }
    }

    代表浏览器支持flex标准,则使用里面的规则,如果不支持,可以如下实现。

     

    2、not关键词 :

    @supports not ( display: flex ) {
        #main{
            float: left;    
        }
    }

    当然not关键词使用的比较少,一般支持@supports的浏览器,都会支持大部分css3属性。

     

    3、多条件检测 : 

    我们可以使用or和and语句,来实现多条件检查。例如:

    @supports ((display: -webkit-flex) or (display: -moz-flex) or (display: flex)) and (-webkit-appearance: caret) { 
        /* use styles here */ 
    }/

     

    4、@supports浏览器的兼容:

    IEFirefoxChromeSafariOperaiOS SafariAndroid BrowserAndroid Chrome
    12.0+ 22.0+ 28.0+ 9.0+ 15.0+ 9.0+ 4.4+ 27.0+

      

    Js中CSS.supports函数  

    同css的@supports标记一样,js里也提供了Window.CSS.supports()方法,用来检查浏览器对css3属性是否支持,该函数提供2中调用方式:

    第一种方法是使用两个参数:一个是属性名,另一个是属性值  。

    var supportsFlex = CSS.supports("display", "flex");

    第二种用法是:简单的提供整个需要分析的样式字串。  

    var  supportsFlex   = CSS.supports("(display: flex) and (-webkit-display: flex)");

    CSS.supports函数返回的是一个布尔值,如果为true这代表支持该属性,当然在使用该函数之前,我们需要先判断浏览器是否支持CSS.supports,方法如下:

    if(!!((window.CSS && window.CSS.supports) || window.supportsCSS || false)){
        //支持
    }
  • 相关阅读:
    小米、华为与联想,背后隐含的三种模式(转)
    怎样使用jstack诊断Java应用程序故障(转)
    多线程中的死锁举例与分析(转)
    log4j的性能瓶颈定位与性能优化(org.apache.log4j.spi.RootLogger) (转)
    一个与Log4j相关的死锁(转)
    怎样取消shutdown关机命令?-shutdown命令的使用解析
    对软件体系结构的认识
    39个让你受益的HTML5教程
    5大AR应用窥探移动未来~你见过吗?
    Response.AddHeader使用实例
  • 原文地址:https://www.cnblogs.com/macliu/p/12102348.html
Copyright © 2020-2023  润新知