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

@supports可以用来检查浏览器是否支持某css属性,并且可以通过javascript进行控制,以下就来详细说明使用css的@supports标记来检测浏览器的兼容情况的方法

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

@supports(prop:value) {    /* 各种样式 */}

登录后复制

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

 

立即学习“前端免费学习笔记(深入)”;

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

@supports (display: flex) {    p { display: flex; }   }

登录后复制

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

 

立即学习“前端免费学习笔记(深入)”;

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

@supports not (display: flex) {    p { float: left; } /* 替换样式 */}

登录后复制

多检测及条件检测

/* 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);具体使用看下例:

//测试环境,Chrome:34.0.1847.131 mvar res01 = CSS.supports("text-decoration-style", "blink");   //Outputs: falseconsole.log(res01);   var res02 = CSS.supports("display", "flex");   //Outputs: trueconsole.log(res02);   var res03 = CSS.supports("( transform-origin: 5% 5% )");   //Outputs: falseconsole.log(res03);   var res04 = CSS.supports("( transform-style: preserve ) or ( -moz-transform-style: preserve ) or " +                         "( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )" );   //Outputs: falseconsole.log(res04);

登录后复制

@supports的使用场景

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

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标记来检测浏览器的兼容情况分析的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2906183.html

(0)
上一篇 2025年3月11日 02:40:06
下一篇 2025年2月18日 02:50:29

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论