这篇文章主要讲解了“CSS怎么检测浏览器的兼容情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS怎么检测浏览器的兼容情况”吧!
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复制内容到剪贴板
@supports (display: -webkit-flex) or
(display: -moz-flex) or
(display: flex) {
}
@supports (display: flex) and (-webkit-appearance: caret) {
}
@supports ((display: -webkit-flex) or
(display: -moz-flex) or
(display: flex)) and (-webkit-appearance: caret) {
}
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
var res01 = CSS.supports("text-decoration-style", "blink");
//Outputs: false
console.log(res01);
var res02 = CSS.supports("display", "flex");
//Outputs: true
console.log(res02);
var res03 = CSS.supports("( transform-origin: 5% 5% )");
//Outputs: false
console.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: 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;
}
}
感谢各位的阅读,以上就是“CSS怎么检测浏览器的兼容情况”的内容了,经过本文的学习后,相信大家对CSS怎么检测浏览器的兼容情况这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!