手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >使用CSS的@supports标记来检测浏览器的兼容情况
使用CSS的@supports标记来检测浏览器的兼容情况
摘要:CSS@supports标记在CSS代码里跟@media查询语句的语法相似:CSSCode复制内容到剪贴板@supports(prop:va...

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复制内容到剪贴板 @supportsnot(display:flex){ div{float:left;}/*替换样式*/ }

多检测及条件检测

CSS Code复制内容到剪贴板 /*or*/ @supports(display:-webkit-flex)or (display:-moz-flex)or (display:flex){ /*usestyleshere*/ } /*and*/ @supports(display:flex)and(-webkit-appearance:caret){ /*somethingcrazyhere*/ } /*andandor*/ @supports((display:-webkit-flex)or (display:-moz-flex)or (display:flex))and(-webkit-appearance:caret){ /*usestyleshere*/ }

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.131m 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功能的使用和体验,更多的更好的使用场景会不断的出现。

【使用CSS的@supports标记来检测浏览器的兼容情况】相关文章:

解决CSS浏览器兼容技巧

比较全的CSS浏览器兼容问题整理总结

使用CSS框架布局的缺点和优点

正确使用CSS的height和min

使用CSS代码的空格实现中文对齐的方法

使用css的background:url设置背景图方法

最全的CSS浏览器兼容问题

关于浏览器兼容性的讨论

火狐浏览器中DIV的高度不随里面的内容增高而增高

Google浏览器CSS居中兼容问题完美解决方法

精品推荐
分类导航