为了判断浏览器是否支持css3的一些新属性样式,当不兼容该样式的时刻,我们可以更优雅的降级处置。这就需要使用到css3的条件判断功效:在css中支持@supports符号、或者在js中使用CSS.supports函数,来检测浏览器是否支持css3的新属性。下面就来看看若何实现的!
@supports (rule)[operator (rule)]* { sRules }
说明:
rule: 指定一条详细的CSS规则,必须使用括号包裹。
operator: 使用or | and | not等操作符指定多条规则。
@supports ( display: flex ) { body { display: flex; } #main { flex: auto; } }
代表浏览器支持flex尺度,则使用内里的规则,若是不支持,可以如下实现。
@supports not ( display: flex ) { #main{ float: left; } }
固然not关键词使用的比较少,一样平常支持@supports的浏览器,都市支持大部分css3属性。
我们可以使用or和and语句,来实现多条件检查。例如:
@supports ((display: -webkit-flex) or (display: -moz-flex) or (display: flex)) and (-webkit-appearance: caret) { /* use styles here */ }/
12.0+ | 22.0+ | 28.0+ | 9.0+ | 15.0+ | 9.0+ | 4.4+ | 27.0+ |
同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)){ //支持 }
1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入
2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各种产物的最新流动,优惠券领取点击进入
3.广告同盟: 整理了现在主流的广告同盟平台,若是你有流量,可以作为参考选择适合你的平台点击进入
链接: http://www.fly63.com/article/detial/555