css支持程度监测,使用CSS的@supports标记来检测浏览器的兼容情况

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

CSS Code复制内容到剪贴板

@supports(prop:value) {

/* 各种样式 */

}

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

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

CSS Code复制内容到剪贴板

@supports (display: flex) {

div {display: flex; }

}

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

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

CSS Code复制内容到剪贴板

@supports not (display: flex) {

div {float:left; }/* 替换样式 */

}

多检测及条件检测

CSS Code复制内容到剪贴板

/* or */

@supports (display: -webkit-flex) or

(display: -moz-flex) or

(display: flex) {

/* use styles here */

}

/* and */

@supports (display: flex) and (-webkit-appearance: caret) {

/* something crazy here */

}

/* and and or */

@supports ((display: -webkit-flex) or

(display: -moz-flex) or

(display: flex)) and (-webkit-appearance: caret) {

/* use styles here */

}

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复制内容到剪贴板

//测试环境,Chrome:34.0.1847.131 m

varres01 = CSS.supports("text-decoration-style","blink");

//Outputs: false

console.log(res01);

varres02 = CSS.supports("display","flex");

//Outputs: true

console.log(res02);

varres03 = CSS.supports("( transform-origin: 5% 5% )");

//Outputs: false

console.log(res03);

varres04 = CSS.supports("( transform-style: preserve ) or ( -moz-transform-style: preserve ) or "+

"( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )");

//Outputs: false

console.log(res04);

@supports的使用场景

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

CSS Code复制内容到剪贴板

section {

float:left;

}

@supports (display: -webkit-flex) or

(display: -moz-flex) or

(display: flex) {

section {

display: -webkit-flex;

display: -moz-flex;

display: flex;

float:none;

}

}

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值